XML 1138 R63.htm IDEA: XBRL DOCUMENT v2.4.1.9
Retirement Benefits - Fair Values of Pension Plan and Other Postretirement Benefit Plan Assets (Details) (USD $)
In Thousands, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets $ 9,647,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
$ 8,650,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities (2,000)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
(3,000)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Fair Value, Plan Assets and Liabilities 9,645,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
8,647,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,408,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
[1] 2,272,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
[2]  
Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,056,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
[1] 2,119,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
[2]  
Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 699,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
599,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 188,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
156,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,135,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
978,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 514,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
471,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 663,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
224,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,414,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
1,260,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 570,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
571,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 905,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
898,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 203,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
[3] 202,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
[2]  
Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 103,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
[3] 121,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
[2]  
Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 29,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
34,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 39,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
35,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 41,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
46,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 36,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
19,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Other Postretirement Benefits [Member] | Trust-owned life insurance [Member]      
Assets Fair Value      
Fair Value, Plan Assets 381,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
369,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 48,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
46,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 19,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
20,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 3,070,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
2,795,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Liabilities Fair Value      
Fair Value, Plan Liabilities (2,000)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Fair Value, Plan Assets and Liabilities 3,068,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
2,795,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,704,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
[1] 1,433,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
[2]  
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,070,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
[1] 1,101,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
[2]  
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 3,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
1,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 293,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
260,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 203,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
206,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 147,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
[3] 157,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
[2]  
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 36,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
[3] 39,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
[2]  
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 9,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Trust-owned life insurance [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 11,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
10,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 4,886,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
4,284,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Liabilities Fair Value      
Fair Value, Plan Liabilities 0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
(3,000)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Fair Value, Plan Assets and Liabilities 4,886,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
4,281,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 704,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
[1] 839,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
[2]  
Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 986,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
[1] 1,018,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
[2]  
Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 699,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
599,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 188,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
156,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,135,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
978,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 514,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
471,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 660,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
223,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 646,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
636,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 56,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
[3] 45,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
[2]  
Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 67,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
[3] 82,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
[2]  
Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 29,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
34,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 39,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
35,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 41,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
46,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 27,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
19,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Trust-owned life insurance [Member]      
Assets Fair Value      
Fair Value, Plan Assets 381,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
369,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,691,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,571,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Liabilities Fair Value      
Fair Value, Plan Liabilities 0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Fair Value, Plan Assets and Liabilities 1,691,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,571,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]  
Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]  
Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,121,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,000,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
841,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 570,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
571,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
593,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 56,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
56,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[3] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]  
Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[3] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]  
Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Trust-owned life insurance [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 37,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
36,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
30,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 19,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
20,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
21,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Alabama Power [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,385,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
2,256,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities   (1,000)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Fair Value, Plan Assets and Liabilities   2,255,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 595,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 593,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 508,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 552,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 173,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
156,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 47,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
41,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 280,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
255,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 127,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
123,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 164,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
58,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 350,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
329,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 141,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
149,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 391,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
387,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 84,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 78,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 25,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 27,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 10,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
17,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
2,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 14,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
12,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 8,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
10,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Other Postretirement Benefits [Member] | Trust-owned life insurance [Member]      
Assets Fair Value      
Fair Value, Plan Assets 217,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
211,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 18,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
17,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 7,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
7,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 759,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
729,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities   0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Fair Value, Plan Assets and Liabilities   729,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 421,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 374,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 264,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 287,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 73,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
68,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 94,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
85,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 76,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 67,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 13,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 14,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Trust-owned life insurance [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 5,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
4,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,208,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
1,117,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities   (1,000)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Fair Value, Plan Assets and Liabilities   1,116,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 174,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 219,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 244,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 265,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 173,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
156,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 47,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
41,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 280,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
255,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 127,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
123,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 163,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
58,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 277,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
282,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 8,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 11,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 12,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 13,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 10,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
17,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
2,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 14,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
12,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 8,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
10,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Trust-owned life insurance [Member]      
Assets Fair Value      
Fair Value, Plan Assets 217,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
211,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 418,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
410,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities   0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Fair Value, Plan Assets and Liabilities   410,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 277,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
261,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
220,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 141,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
149,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
155,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 20,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
20,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
[2]  
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Trust-owned life insurance [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
 
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 13,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
13,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
11,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
Alabama Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 7,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
7,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
8,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_AlabamaPowerMember
Georgia Power [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 3,368,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
3,055,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities (1,000)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
(1,000)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Fair Value, Plan Assets and Liabilities 3,367,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
3,054,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 841,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 802,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 717,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 748,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 244,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
212,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 66,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
55,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 398,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
346,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 179,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
166,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 231,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
79,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 493,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
445,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 199,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
202,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 401,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
406,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 93,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 99,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 56,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 69,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 7,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
7,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
2,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 12,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
11,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 29,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
34,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 19,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Other Postretirement Benefits [Member] | Trust-owned life insurance [Member]      
Assets Fair Value      
Fair Value, Plan Assets 162,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
158,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 15,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
14,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,071,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
987,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities (1,000)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Fair Value, Plan Assets and Liabilities 1,070,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
987,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 595,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 506,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 373,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 389,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 102,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
92,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 75,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
89,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 53,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 74,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 11,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 12,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 8,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Trust-owned life insurance [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 3,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
3,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,707,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
1,513,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities 0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
(1,000)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Fair Value, Plan Assets and Liabilities 1,707,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
1,512,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 246,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 296,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 344,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 359,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 244,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
212,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 66,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
55,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 398,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
346,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 179,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
166,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 230,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
79,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 308,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
300,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 40,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 25,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 45,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 57,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 7,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
7,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
2,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 12,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
11,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 29,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
34,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 11,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Trust-owned life insurance [Member]      
Assets Fair Value      
Fair Value, Plan Assets 162,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
158,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 590,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
555,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities 0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Fair Value, Plan Assets and Liabilities 590,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
555,000so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 391,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
353,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
299,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 199,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
202,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
211,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 18,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
17,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
[2]  
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Trust-owned life insurance [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_TrustOwnedLifeInsuranceMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
 
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 12,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
11,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
10,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
Georgia Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
6,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
7,000so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GeorgiaPowerMember
Gulf Power [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 432,798so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
381,941so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities (87)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
(115)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Fair Value, Plan Assets and Liabilities 432,711so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
381,826so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 108,048so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 100,306so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 92,211so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 93,547so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 31,372so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
26,461so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 8,438so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
6,873so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 50,931so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
43,222so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 23,063so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
20,810so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 29,727so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
9,889so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 63,435so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
55,632so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 25,573so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
25,201so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 18,087so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
17,278so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities (4)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
(5)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Fair Value, Plan Assets and Liabilities 18,083so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
17,273so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 4,388so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 4,406so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 3,747so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 4,109so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,274so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
1,161so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 342so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
303so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,071so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
1,897so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 937so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
1,417so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,713so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
434so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,576so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
2,443so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,039so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
1,108so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 137,732so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
123,406so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities (87)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Fair Value, Plan Assets and Liabilities 137,645so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
123,406so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 76,460so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 63,269so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 47,988so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 48,606so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 130so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
38so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 13,154so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
11,493so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 6,098so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
5,419so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities (4)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Fair Value, Plan Assets and Liabilities 6,094so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
5,419so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 3,105so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 2,778so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,949so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 2,136so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 510so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
1so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 534so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
504so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 219,212so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
189,195so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities 0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
(115)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Fair Value, Plan Assets and Liabilities 219,212so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
189,080so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 31,588so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 37,037so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 44,223so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 44,941so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 31,372so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
26,461so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 8,438so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
6,873so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 50,931so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
43,222so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 23,063so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
20,810so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 29,597so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
9,851so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 8,908so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
8,812so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities 0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
(5)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Fair Value, Plan Assets and Liabilities 8,908so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
8,807so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,283so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 1,628so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,798so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 1,973so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,274so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
1,161so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 342so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
303so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,071so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
1,897so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 937so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
1,417so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,203so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
433so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 75,854so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
69,340so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities 0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Fair Value, Plan Assets and Liabilities 75,854so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
69,340so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 50,281so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
44,139so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
37,039so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 25,573so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
25,201so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
26,129so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 3,081so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
3,047so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities 0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Fair Value, Plan Assets and Liabilities 3,081so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
3,047so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
[2]  
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
 
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,042so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
1,939so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
1,667so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
Gulf Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,039so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
1,108so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
1,155so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_GulfPowerMember
Mississippi Power [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 443,463so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
383,687so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities (89)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
(115)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Fair Value, Plan Assets and Liabilities 443,374so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
383,572so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 110,710so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 100,764so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 94,483so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 93,975so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 32,145so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
26,582so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 8,646so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
6,904so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 52,185so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
43,420so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 23,632so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
20,905so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 30,460so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
9,934so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 64,999so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
55,887so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 26,203so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
25,316so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 23,980so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
23,057so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities (5)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
(5)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Fair Value, Plan Assets and Liabilities 23,975so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
23,052so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 4,875so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 4,898so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 4,162so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 4,568so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 5,279so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
5,213so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 380so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
337so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,301so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
2,109so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,041so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
1,016so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,926so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
969so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,862so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
2,716so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,154so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
1,231so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 141,126so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
123,971so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities (89)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Fair Value, Plan Assets and Liabilities 141,037so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
123,971so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 78,344so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 63,558so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 49,170so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 48,829so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 133so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
38so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 13,479so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
11,546so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 6,797so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
6,025so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities (5)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Fair Value, Plan Assets and Liabilities 6,792so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
6,025so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 3,450so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 3,089so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,165so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 2,375so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 589so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
1so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 593so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
560so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 224,614so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
190,059so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities 0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
(115)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Fair Value, Plan Assets and Liabilities 224,614so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
189,944so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 32,366so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 37,206so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 45,313so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 45,146so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 32,145so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
26,582so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 8,646so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
6,904so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 52,185so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
43,420so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 23,632so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
20,905so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 30,327so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
9,896so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 13,760so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
13,645so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities 0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
(5)so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Fair Value, Plan Assets and Liabilities 13,760so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
13,640so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,425so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 1,809so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,997so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 2,193so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 5,279so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
5,213so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 380so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
337so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,301so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
2,109so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,041so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
1,016so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 1,337so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
968so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member]      
Assets Fair Value      
Fair Value, Plan Assets 77,723so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
69,657so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities 0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Fair Value, Plan Assets and Liabilities 77,723so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
69,657so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 51,520so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
44,341so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
37,196so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Pension Plans [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 26,203so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
25,316so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
26,240so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member]      
Assets Fair Value      
Fair Value, Plan Assets 3,423so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
3,387so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Liabilities Fair Value      
Fair Value, Plan Liabilities 0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueofPlanLiabilitieswithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Fair Value, Plan Assets and Liabilities 3,423so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
3,387so_DefinedBenefitPlanFairValuewithExclusions
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Domestic Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | International Equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2] 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[2]  
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | U.S. Treasury, government, and agency bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Mortgage and asset backed securities [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Corporate bonds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Pooled funds [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_PooledFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Cash equivalents and other [Member]      
Assets Fair Value      
Fair Value, Plan Assets 0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
0so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= so_CashEquivalentsAndOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
 
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Real estate investments [Member]      
Assets Fair Value      
Fair Value, Plan Assets 2,269so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
2,156so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
1,865so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
Mississippi Power [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other Postretirement Benefits [Member] | Private equity [Member]      
Assets Fair Value      
Fair Value, Plan Assets $ 1,154so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
$ 1,231so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
$ 1,293so_DefinedBenefitPlanFairValueOfPlanAssetsWithExclusions
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= so_MississippiPowerMember
[1] *Level 1 securities consist of actively traded stocks while Level 2 securities consist of pooled funds. Management believes that the portfolio is well-diversified with no significant concentrations of risk. Fair Value Measurements Using Quoted Prices in Active Markets for Identical Assets SignificantOtherObservableInputs SignificantUnobservableInputs As of December 31, 2013:(Level 1) (Level 2) (Level 3) Total (in millions)Assets: Domestic equity*$1,433 $839 $— $2,272International equity*1,101 1,018 — 2,119Fixed income: U.S. Treasury, government, and agency bonds— 599 — 599Mortgage- and asset-backed securities— 156 — 156Corporate bonds— 978 — 978Pooled funds— 471 — 471Cash equivalents and other1 223 — 224Real estate investments260 — 1,000 1,260Private equity— — 571 571Total$2,795 $4,284 $1,571 $8,650Liabilities: Derivatives$— $(3) $— $(3)Total$2,795 $4,281 $1,571 $8,647
[2] *Level 1 securities consist of actively traded stocks while Level 2 securities consist of pooled funds. Management believes that the portfolio is well-diversified with no significant concentrations of risk.
[3] *Level 1 securities consist of actively traded stocks while Level 2 securities consist of pooled funds. Management believes that the portfolio is well-diversified with no significant concentrations of risk. Fair Value Measurements Using Quoted Prices in Active Markets for Identical Assets SignificantOtherObservableInputs SignificantUnobservableInputs As of December 31, 2013:(Level 1) (Level 2) (Level 3) Total (in millions)Assets: Domestic equity*$157 $45 $— $202International equity*39 82 — 121Fixed income: U.S. Treasury, government, and agency bonds— 34 — 34Mortgage- and asset-backed securities— 6 — 6Corporate bonds— 35 — 35Pooled funds— 46 — 46Cash equivalents and other— 19 — 19Trust-owned life insurance— 369 — 369Real estate investments10 — 36 46Private equity— — 20 20Total$206 $636 $56 $898