<?xml version="1.0" encoding="utf-8"?>
<InstanceReport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Version>1.0.0.3</Version>
  <hasSegments>false</hasSegments>
  <ReportName>Consolidated Statements of Cash Flows (USD $)</ReportName>
  <RoundingOption>In Millions</RoundingOption>
  <Columns>
    <Column>
      <LabelColumn>false</LabelColumn>
      <Id>1</Id>
      <Labels>
        <Label Id="1" Label="12 Months Ended" />
        <Label Id="2" Label="Dec. 31, 2009" />
      </Labels>
      <CurrencySymbol>$</CurrencySymbol>
      <hasSegments>false</hasSegments>
      <hasScenarios>false</hasScenarios>
      <Segments />
      <Scenarios />
      <Units>
        <Unit>
          <UnitID>Shares</UnitID>
          <UnitType>Standard</UnitType>
          <StandardMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/instance</MeasureSchema>
            <MeasureValue>shares</MeasureValue>
            <MeasureNamespace>xbrli</MeasureNamespace>
          </StandardMeasure>
          <Scale>0</Scale>
        </Unit>
        <Unit>
          <UnitID>USD</UnitID>
          <UnitType>Standard</UnitType>
          <StandardMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/iso4217</MeasureSchema>
            <MeasureValue>USD</MeasureValue>
            <MeasureNamespace>iso4217</MeasureNamespace>
          </StandardMeasure>
          <Scale>0</Scale>
        </Unit>
        <Unit>
          <UnitID>USDEPS</UnitID>
          <UnitType>Divide</UnitType>
          <NumeratorMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/iso4217</MeasureSchema>
            <MeasureValue>USD</MeasureValue>
            <MeasureNamespace>iso4217</MeasureNamespace>
          </NumeratorMeasure>
          <DenominatorMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/instance</MeasureSchema>
            <MeasureValue>shares</MeasureValue>
            <MeasureNamespace>xbrli</MeasureNamespace>
          </DenominatorMeasure>
          <Scale>0</Scale>
        </Unit>
      </Units>
    </Column>
    <Column>
      <LabelColumn>false</LabelColumn>
      <Id>2</Id>
      <Labels>
        <Label Id="1" Label="12 Months Ended" />
        <Label Id="2" Label="Dec. 31, 2008" />
      </Labels>
      <CurrencySymbol>$</CurrencySymbol>
      <hasSegments>false</hasSegments>
      <hasScenarios>false</hasScenarios>
      <Segments />
      <Scenarios />
      <Units>
        <Unit>
          <UnitID>Shares</UnitID>
          <UnitType>Standard</UnitType>
          <StandardMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/instance</MeasureSchema>
            <MeasureValue>shares</MeasureValue>
            <MeasureNamespace>xbrli</MeasureNamespace>
          </StandardMeasure>
          <Scale>0</Scale>
        </Unit>
        <Unit>
          <UnitID>USD</UnitID>
          <UnitType>Standard</UnitType>
          <StandardMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/iso4217</MeasureSchema>
            <MeasureValue>USD</MeasureValue>
            <MeasureNamespace>iso4217</MeasureNamespace>
          </StandardMeasure>
          <Scale>0</Scale>
        </Unit>
        <Unit>
          <UnitID>USDEPS</UnitID>
          <UnitType>Divide</UnitType>
          <NumeratorMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/iso4217</MeasureSchema>
            <MeasureValue>USD</MeasureValue>
            <MeasureNamespace>iso4217</MeasureNamespace>
          </NumeratorMeasure>
          <DenominatorMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/instance</MeasureSchema>
            <MeasureValue>shares</MeasureValue>
            <MeasureNamespace>xbrli</MeasureNamespace>
          </DenominatorMeasure>
          <Scale>0</Scale>
        </Unit>
      </Units>
    </Column>
    <Column>
      <LabelColumn>false</LabelColumn>
      <Id>3</Id>
      <Labels>
        <Label Id="1" Label="12 Months Ended" />
        <Label Id="2" Label="Dec. 31, 2007" />
      </Labels>
      <CurrencySymbol>$</CurrencySymbol>
      <hasSegments>false</hasSegments>
      <hasScenarios>false</hasScenarios>
      <Segments />
      <Scenarios />
      <Units>
        <Unit>
          <UnitID>Shares</UnitID>
          <UnitType>Standard</UnitType>
          <StandardMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/instance</MeasureSchema>
            <MeasureValue>shares</MeasureValue>
            <MeasureNamespace>xbrli</MeasureNamespace>
          </StandardMeasure>
          <Scale>0</Scale>
        </Unit>
        <Unit>
          <UnitID>USD</UnitID>
          <UnitType>Standard</UnitType>
          <StandardMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/iso4217</MeasureSchema>
            <MeasureValue>USD</MeasureValue>
            <MeasureNamespace>iso4217</MeasureNamespace>
          </StandardMeasure>
          <Scale>0</Scale>
        </Unit>
        <Unit>
          <UnitID>USDEPS</UnitID>
          <UnitType>Divide</UnitType>
          <NumeratorMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/iso4217</MeasureSchema>
            <MeasureValue>USD</MeasureValue>
            <MeasureNamespace>iso4217</MeasureNamespace>
          </NumeratorMeasure>
          <DenominatorMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/instance</MeasureSchema>
            <MeasureValue>shares</MeasureValue>
            <MeasureNamespace>xbrli</MeasureNamespace>
          </DenominatorMeasure>
          <Scale>0</Scale>
        </Unit>
      </Units>
    </Column>
  </Columns>
  <Rows>
    <Row>
      <Id>3</Id>
      <Label>Operating Activities:</Label>
      <Level>1</Level>
      <ElementName>us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>na</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>string</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>true</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>4</Id>
      <Label>Consolidated net income</Label>
      <Level>2</Level>
      <ElementName>us-gaap_ProfitLoss</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>true</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>1708000000</NumericAmount>
          <RoundedNumericAmount>1708</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>true</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>1807000000</NumericAmount>
          <RoundedNumericAmount>1807</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>true</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>1782000000</NumericAmount>
          <RoundedNumericAmount>1782</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>5</Id>
      <Label>Adjustments to reconcile consolidated net income to net cash provided from operating activities -</Label>
      <Level>2</Level>
      <ElementName>us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>na</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>string</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>true</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>6</Id>
      <Label>Depreciation and amortization, total</Label>
      <Level>3</Level>
      <ElementName>us-gaap_DepreciationAmortizationAndAccretionNet</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>1788000000</NumericAmount>
          <RoundedNumericAmount>1788</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>1704000000</NumericAmount>
          <RoundedNumericAmount>1704</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>1486000000</NumericAmount>
          <RoundedNumericAmount>1486</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>7</Id>
      <Label>Deferred income taxes</Label>
      <Level>3</Level>
      <ElementName>us-gaap_DeferredIncomeTaxExpenseBenefit</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>25000000</NumericAmount>
          <RoundedNumericAmount>25</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>215000000</NumericAmount>
          <RoundedNumericAmount>215</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>7000000</NumericAmount>
          <RoundedNumericAmount>7</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>8</Id>
      <Label>Deferred revenues</Label>
      <Level>3</Level>
      <ElementName>us-gaap_RecognitionOfDeferredRevenue</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-54000000</NumericAmount>
          <RoundedNumericAmount>-54</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>120000000</NumericAmount>
          <RoundedNumericAmount>120</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-2000000</NumericAmount>
          <RoundedNumericAmount>-2</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>9</Id>
      <Label>Allowance for equity funds used during construction</Label>
      <Level>3</Level>
      <ElementName>so_AllowanceForEquityFundsUsedDuringConstruction</ElementName>
      <ElementPrefix>so</ElementPrefix>
      <IsBaseElement>false</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>Total increase in earnings in the period representing the cost of equity (rate of return) used to finance construction of...</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-200000000</NumericAmount>
          <RoundedNumericAmount>-200</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-152000000</NumericAmount>
          <RoundedNumericAmount>-152</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-106000000</NumericAmount>
          <RoundedNumericAmount>-106</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>Total increase in earnings in the period representing the cost of equity (rate of return) used to finance construction of regulated assets, which is expected to be recovered through rate adjustments.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>10</Id>
      <Label>Equity in (income) losses of unconsolidated subsidiaries</Label>
      <Level>3</Level>
      <ElementName>us-gaap_IncomeLossFromEquityMethodInvestments</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>1000000</NumericAmount>
          <RoundedNumericAmount>1</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-11000000</NumericAmount>
          <RoundedNumericAmount>-11</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>24000000</NumericAmount>
          <RoundedNumericAmount>24</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>11</Id>
      <Label>Leveraged lease (income) losses</Label>
      <Level>3</Level>
      <ElementName>us-gaap_LeveragedLeasesIncomeStatementNetIncomeFromLeveragedLeases</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-31000000</NumericAmount>
          <RoundedNumericAmount>-31</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>85000000</NumericAmount>
          <RoundedNumericAmount>85</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-40000000</NumericAmount>
          <RoundedNumericAmount>-40</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>12</Id>
      <Label>Gain on disposition of lease termination</Label>
      <Level>3</Level>
      <ElementName>us-gaap_GainLossOnContractTermination</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-26000000</NumericAmount>
          <RoundedNumericAmount>-26</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>13</Id>
      <Label>Loss on extinguishment of debt</Label>
      <Level>3</Level>
      <ElementName>us-gaap_GainsLossesOnExtinguishmentOfDebtBeforeWriteOffOfDeferredDebtIssuanceCost</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>17000000</NumericAmount>
          <RoundedNumericAmount>17</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>14</Id>
      <Label>Pension, postretirement, and other employee benefits</Label>
      <Level>3</Level>
      <ElementName>us-gaap_PensionAndOtherPostretirementBenefitExpense</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-3000000</NumericAmount>
          <RoundedNumericAmount>-3</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>21000000</NumericAmount>
          <RoundedNumericAmount>21</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>39000000</NumericAmount>
          <RoundedNumericAmount>39</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>15</Id>
      <Label>Stock based compensation expense</Label>
      <Level>3</Level>
      <ElementName>us-gaap_StockOptionPlanExpense</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>23000000</NumericAmount>
          <RoundedNumericAmount>23</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>20000000</NumericAmount>
          <RoundedNumericAmount>20</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>28000000</NumericAmount>
          <RoundedNumericAmount>28</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>16</Id>
      <Label>Hedge settlements</Label>
      <Level>3</Level>
      <ElementName>so_HedgeSettlements</ElementName>
      <ElementPrefix>so</ElementPrefix>
      <IsBaseElement>false</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>The cash outflow (inflow) for a financial contract that settles in the period relating to operating activities.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-19000000</NumericAmount>
          <RoundedNumericAmount>-19</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>15000000</NumericAmount>
          <RoundedNumericAmount>15</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>10000000</NumericAmount>
          <RoundedNumericAmount>10</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>The cash outflow (inflow) for a financial contract that settles in the period relating to operating activities.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>17</Id>
      <Label>Other, net</Label>
      <Level>3</Level>
      <ElementName>us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesOther</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>79000000</NumericAmount>
          <RoundedNumericAmount>79</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-97000000</NumericAmount>
          <RoundedNumericAmount>-97</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>80000000</NumericAmount>
          <RoundedNumericAmount>80</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>18</Id>
      <Label>Changes in certain current assets and liabilities -</Label>
      <Level>3</Level>
      <ElementName>us-gaap_IncreaseDecreaseInOperatingCapitalAbstract</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>na</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>string</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>true</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>19</Id>
      <Label>-Receivables</Label>
      <Level>4</Level>
      <ElementName>us-gaap_IncreaseDecreaseInReceivables</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>585000000</NumericAmount>
          <RoundedNumericAmount>585</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-176000000</NumericAmount>
          <RoundedNumericAmount>-176</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>165000000</NumericAmount>
          <RoundedNumericAmount>165</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>20</Id>
      <Label>-Fossil fuel stock</Label>
      <Level>4</Level>
      <ElementName>us-gaap_IncreaseDecreaseInFossilFuelInventories</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-432000000</NumericAmount>
          <RoundedNumericAmount>-432</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-303000000</NumericAmount>
          <RoundedNumericAmount>-303</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-39000000</NumericAmount>
          <RoundedNumericAmount>-39</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>21</Id>
      <Label>-Materials and supplies</Label>
      <Level>4</Level>
      <ElementName>us-gaap_IncreaseDecreaseInRawMaterialsPackagingMaterialsAndSuppliesInventories</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-39000000</NumericAmount>
          <RoundedNumericAmount>-39</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-23000000</NumericAmount>
          <RoundedNumericAmount>-23</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-71000000</NumericAmount>
          <RoundedNumericAmount>-71</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>22</Id>
      <Label>-Other current assets</Label>
      <Level>4</Level>
      <ElementName>us-gaap_IncreaseDecreaseInOtherOperatingAssets</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-47000000</NumericAmount>
          <RoundedNumericAmount>-47</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-36000000</NumericAmount>
          <RoundedNumericAmount>-36</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>23</Id>
      <Label>-Accounts payable</Label>
      <Level>4</Level>
      <ElementName>us-gaap_IncreaseDecreaseInAccountsPayable</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-125000000</NumericAmount>
          <RoundedNumericAmount>-125</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-74000000</NumericAmount>
          <RoundedNumericAmount>-74</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>105000000</NumericAmount>
          <RoundedNumericAmount>105</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>24</Id>
      <Label>-Accrued taxes</Label>
      <Level>4</Level>
      <ElementName>so_IncreaseDecreaseInAccruedTaxes</ElementName>
      <ElementPrefix>so</ElementPrefix>
      <IsBaseElement>false</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>The net change during the period in the amount of cash payments due to taxing authorities for income and nonincome-related...</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-95000000</NumericAmount>
          <RoundedNumericAmount>-95</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>293000000</NumericAmount>
          <RoundedNumericAmount>293</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-19000000</NumericAmount>
          <RoundedNumericAmount>-19</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>The net change during the period in the amount of cash payments due to taxing authorities for income and nonincome-related taxes.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>25</Id>
      <Label>-Accrued compensation</Label>
      <Level>4</Level>
      <ElementName>us-gaap_IncreaseDecreaseInAccruedSalaries</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-226000000</NumericAmount>
          <RoundedNumericAmount>-226</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>36000000</NumericAmount>
          <RoundedNumericAmount>36</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-40000000</NumericAmount>
          <RoundedNumericAmount>-40</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>26</Id>
      <Label>-Other current liabilities</Label>
      <Level>4</Level>
      <ElementName>us-gaap_IncreaseDecreaseInOtherOperatingLiabilities</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>334000000</NumericAmount>
          <RoundedNumericAmount>334</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>20000000</NumericAmount>
          <RoundedNumericAmount>20</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>25000000</NumericAmount>
          <RoundedNumericAmount>25</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>true</IsTotalLabel>
    </Row>
    <Row>
      <Id>27</Id>
      <Label>Net cash provided from operating activities</Label>
      <Level>3</Level>
      <ElementName>us-gaap_NetCashProvidedByUsedInOperatingActivities</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>na</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>3263000000</NumericAmount>
          <RoundedNumericAmount>3263</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>3464000000</NumericAmount>
          <RoundedNumericAmount>3464</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>3434000000</NumericAmount>
          <RoundedNumericAmount>3434</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>true</IsTotalLabel>
    </Row>
    <Row>
      <Id>28</Id>
      <Label>Investing Activities:</Label>
      <Level>1</Level>
      <ElementName>us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>na</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>string</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>true</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>29</Id>
      <Label>Property additions</Label>
      <Level>2</Level>
      <ElementName>us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-4670000000</NumericAmount>
          <RoundedNumericAmount>-4670</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-3961000000</NumericAmount>
          <RoundedNumericAmount>-3961</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-3546000000</NumericAmount>
          <RoundedNumericAmount>-3546</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>30</Id>
      <Label>Investment in restricted cash from pollution control revenue bonds</Label>
      <Level>2</Level>
      <ElementName>us-gaap_PaymentsForInvestmentInRestrictedCashFromPollutionControlBond</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-55000000</NumericAmount>
          <RoundedNumericAmount>-55</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-96000000</NumericAmount>
          <RoundedNumericAmount>-96</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-157000000</NumericAmount>
          <RoundedNumericAmount>-157</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>31</Id>
      <Label>Distribution of restricted cash from pollution control revenue bonds</Label>
      <Level>2</Level>
      <ElementName>us-gaap_ProceedsFromDistributionOfRestrictedCashFromPollutionControlBond</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>119000000</NumericAmount>
          <RoundedNumericAmount>119</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>69000000</NumericAmount>
          <RoundedNumericAmount>69</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>78000000</NumericAmount>
          <RoundedNumericAmount>78</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>32</Id>
      <Label>Nuclear decommissioning trust fund purchases</Label>
      <Level>2</Level>
      <ElementName>us-gaap_PaymentsToInvestInDecommissioningFund</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-1234000000</NumericAmount>
          <RoundedNumericAmount>-1234</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-720000000</NumericAmount>
          <RoundedNumericAmount>-720</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-783000000</NumericAmount>
          <RoundedNumericAmount>-783</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>33</Id>
      <Label>Nuclear decommissioning trust fund sales</Label>
      <Level>2</Level>
      <ElementName>us-gaap_ProceedsFromDecommissioningFund</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>1228000000</NumericAmount>
          <RoundedNumericAmount>1228</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>712000000</NumericAmount>
          <RoundedNumericAmount>712</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>775000000</NumericAmount>
          <RoundedNumericAmount>775</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>34</Id>
      <Label>Proceeds from property sales</Label>
      <Level>2</Level>
      <ElementName>us-gaap_ProceedsFromSaleOfProductiveAssets</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>340000000</NumericAmount>
          <RoundedNumericAmount>340</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>34000000</NumericAmount>
          <RoundedNumericAmount>34</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>33000000</NumericAmount>
          <RoundedNumericAmount>33</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>35</Id>
      <Label>Cost of removal, net of salvage</Label>
      <Level>2</Level>
      <ElementName>us-gaap_PaymentsForProceedsFromRemovalCosts</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-119000000</NumericAmount>
          <RoundedNumericAmount>-119</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-123000000</NumericAmount>
          <RoundedNumericAmount>-123</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-108000000</NumericAmount>
          <RoundedNumericAmount>-108</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>36</Id>
      <Label>Change in construction payables</Label>
      <Level>2</Level>
      <ElementName>so_ChangeInConstructionPayables</ElementName>
      <ElementPrefix>so</ElementPrefix>
      <IsBaseElement>false</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>The net change during the reporting period in the aggregate amount of construction obligations due within one year (or one...</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>215000000</NumericAmount>
          <RoundedNumericAmount>215</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>83000000</NumericAmount>
          <RoundedNumericAmount>83</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>38000000</NumericAmount>
          <RoundedNumericAmount>38</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>The net change during the reporting period in the aggregate amount of construction obligations due within one year (or one business cycle). This includes accounts payable related to construction activities.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>37</Id>
      <Label>Other investing activities</Label>
      <Level>2</Level>
      <ElementName>us-gaap_PaymentsForProceedsFromOtherInvestingActivities</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-143000000</NumericAmount>
          <RoundedNumericAmount>-143</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-124000000</NumericAmount>
          <RoundedNumericAmount>-124</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-39000000</NumericAmount>
          <RoundedNumericAmount>-39</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>true</IsTotalLabel>
    </Row>
    <Row>
      <Id>38</Id>
      <Label>Net cash used for investing activities</Label>
      <Level>2</Level>
      <ElementName>us-gaap_NetCashProvidedByUsedInInvestingActivities</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-4319000000</NumericAmount>
          <RoundedNumericAmount>-4319</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-4126000000</NumericAmount>
          <RoundedNumericAmount>-4126</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-3709000000</NumericAmount>
          <RoundedNumericAmount>-3709</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>true</IsTotalLabel>
    </Row>
    <Row>
      <Id>39</Id>
      <Label>Financing Activities:</Label>
      <Level>1</Level>
      <ElementName>us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>na</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>string</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>true</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>40</Id>
      <Label>Decrease in notes payable, net</Label>
      <Level>2</Level>
      <ElementName>us-gaap_ProceedsFromRepaymentsOfShortTermDebt</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-306000000</NumericAmount>
          <RoundedNumericAmount>-306</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-314000000</NumericAmount>
          <RoundedNumericAmount>-314</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-669000000</NumericAmount>
          <RoundedNumericAmount>-669</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>41</Id>
      <Label>Proceeds -</Label>
      <Level>2</Level>
      <ElementName>so_ProceedsAbstract</ElementName>
      <ElementPrefix>so</ElementPrefix>
      <IsBaseElement>false</IsBaseElement>
      <BalanceType>na</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>string</ElementDataType>
      <ShortDefinition>Proceeds.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>true</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>Proceeds.</ElementDefenition>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>42</Id>
      <Label>Long-term debt issuances</Label>
      <Level>3</Level>
      <ElementName>us-gaap_ProceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>3042000000</NumericAmount>
          <RoundedNumericAmount>3042</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>3687000000</NumericAmount>
          <RoundedNumericAmount>3687</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>3826000000</NumericAmount>
          <RoundedNumericAmount>3826</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>43</Id>
      <Label>Preferred and preference stock</Label>
      <Level>3</Level>
      <ElementName>us-gaap_ProceedsFromMinorityShareholders</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>470000000</NumericAmount>
          <RoundedNumericAmount>470</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>44</Id>
      <Label>Common stock issuances</Label>
      <Level>3</Level>
      <ElementName>us-gaap_ProceedsFromIssuanceOfCommonStock</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>1286000000</NumericAmount>
          <RoundedNumericAmount>1286</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>474000000</NumericAmount>
          <RoundedNumericAmount>474</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>538000000</NumericAmount>
          <RoundedNumericAmount>538</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>45</Id>
      <Label>Redemptions -</Label>
      <Level>2</Level>
      <ElementName>so_RedemptionsAbstract</ElementName>
      <ElementPrefix>so</ElementPrefix>
      <IsBaseElement>false</IsBaseElement>
      <BalanceType>na</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>string</ElementDataType>
      <ShortDefinition>Redemptions.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>true</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>Redemptions.</ElementDefenition>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>46</Id>
      <Label>Long-term debt</Label>
      <Level>3</Level>
      <ElementName>us-gaap_RepaymentsOfLongTermDebtAndCapitalSecurities</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-1234000000</NumericAmount>
          <RoundedNumericAmount>-1234</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-1469000000</NumericAmount>
          <RoundedNumericAmount>-1469</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-2565000000</NumericAmount>
          <RoundedNumericAmount>-2565</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>47</Id>
      <Label>Redeemable preferred stock</Label>
      <Level>3</Level>
      <ElementName>us-gaap_PaymentsForRepurchaseOfRedeemablePreferredStock</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-125000000</NumericAmount>
          <RoundedNumericAmount>-125</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>48</Id>
      <Label>Payment of common stock dividends</Label>
      <Level>2</Level>
      <ElementName>us-gaap_PaymentsOfDividendsCommonStock</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-1369000000</NumericAmount>
          <RoundedNumericAmount>-1369</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-1280000000</NumericAmount>
          <RoundedNumericAmount>-1280</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-1205000000</NumericAmount>
          <RoundedNumericAmount>-1205</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>49</Id>
      <Label>Payment of dividends on preferred and preference stock of subsidiaries</Label>
      <Level>2</Level>
      <ElementName>us-gaap_PaymentsOfDividendsMinorityInterest</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>credit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-65000000</NumericAmount>
          <RoundedNumericAmount>-65</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-66000000</NumericAmount>
          <RoundedNumericAmount>-66</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-40000000</NumericAmount>
          <RoundedNumericAmount>-40</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>50</Id>
      <Label>Other financing activities</Label>
      <Level>2</Level>
      <ElementName>us-gaap_ProceedsFromPaymentsForOtherFinancingActivities</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-25000000</NumericAmount>
          <RoundedNumericAmount>-25</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-29000000</NumericAmount>
          <RoundedNumericAmount>-29</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>-46000000</NumericAmount>
          <RoundedNumericAmount>-46</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>true</IsTotalLabel>
    </Row>
    <Row>
      <Id>51</Id>
      <Label>Net cash provided from financing activities</Label>
      <Level>2</Level>
      <ElementName>us-gaap_NetCashProvidedByUsedInFinancingActivities</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>1329000000</NumericAmount>
          <RoundedNumericAmount>1329</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>878000000</NumericAmount>
          <RoundedNumericAmount>878</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>309000000</NumericAmount>
          <RoundedNumericAmount>309</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>true</IsTotalLabel>
    </Row>
    <Row>
      <Id>52</Id>
      <Label>Net Change in Cash and Cash Equivalents</Label>
      <Level>1</Level>
      <ElementName>us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>na</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>273000000</NumericAmount>
          <RoundedNumericAmount>273</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>216000000</NumericAmount>
          <RoundedNumericAmount>216</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>34000000</NumericAmount>
          <RoundedNumericAmount>34</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>53</Id>
      <Label>Cash and Cash Equivalents at Beginning of Year</Label>
      <Level>1</Level>
      <ElementName>us-gaap_CashAndCashEquivalentsAtCarryingValue</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>instant</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>true</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>417000000</NumericAmount>
          <RoundedNumericAmount>417</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>201000000</NumericAmount>
          <RoundedNumericAmount>201</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>167000000</NumericAmount>
          <RoundedNumericAmount>167</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>54</Id>
      <Label>Cash and Cash Equivalents at End of Year</Label>
      <Level>1</Level>
      <ElementName>us-gaap_CashAndCashEquivalentsAtCarryingValue</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>debit</BalanceType>
      <PeriodType>instant</PeriodType>
      <ElementDataType>monetary</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>true</IsEndingBalance>
      <IsEPS>false</IsEPS>
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>true</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>690000000</NumericAmount>
          <RoundedNumericAmount>690</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>2</Id>
          <ShowCurrencySymbol>true</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>417000000</NumericAmount>
          <RoundedNumericAmount>417</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
        <Cell>
          <Id>3</Id>
          <ShowCurrencySymbol>true</ShowCurrencySymbol>
          <IsNumeric>true</IsNumeric>
          <NumericAmount>201000000</NumericAmount>
          <RoundedNumericAmount>201</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
        </Cell>
      </Cells>
      <ElementDefenition>No definition available.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
  </Rows>
  <Footnotes />
  <ComparabilityReport>false</ComparabilityReport>
  <NumberOfCols>3</NumberOfCols>
  <NumberOfRows>52</NumberOfRows>
  <HasScenarios>false</HasScenarios>
  <MonetaryRoundingLevel>Millions</MonetaryRoundingLevel>
  <SharesRoundingLevel>UnKnown</SharesRoundingLevel>
  <PerShareRoundingLevel>UnKnown</PerShareRoundingLevel>
  <HasPureData>false</HasPureData>
  <SharesShouldBeRounded>true</SharesShouldBeRounded>
</InstanceReport>
