taxonomy().concept(ferc:ScheduleStatementOfRetainedEarningsAbstract).label("http://ferc.gov/form/2020-01-01/roles/label/F2ScheduleTitle").text
Retained Earnings
|
taxonomy().concept(ferc:ScheduleStatementOfRetainedEarningsAbstract).label("http://ferc.gov/form/2020-01-01/roles/label/F2Instructions").text
- Report all changes in appropriated retained earnings, unappropriated retained earnings, and unappropriated undistributed subsidiary earnings for the year.
- Each credit and debit during the year should be identified as to the retained earnings account in which recorded (Accounts 433, 436-439 inclusive). Show the contra primary account affected in column (b).
- State the purpose and amount for each reservation or appropriation of retained earnings.
- List first Account 439, Adjustments to Retained Earnings, reflecting adjustments to the opening balance of retained earnings. Follow by credit, then debit items, in that order.
- Show dividends for each class and series of capital stock.
|
Line No. |
$headings = filter (taxonomy().concept(ferc:ScheduleStatementOfRetainedEarningsAbstract).references("http://ferc.gov/form/2020-01-01/roles/reference/columnDetails")) where ($item.part-by-name(ferc-part:Schedule).part-value == "118 - Schedule - Retained Earnings")
$headings = list(for $ref in $headings
list($ref.part-by-name(ferc-part:Column).part-value, $ref.part-by-name(ferc-part:ColumnName).part-value))
$heading_dict = dict(for $row in $headings
list("("+$row[1]+")",$row[2])
);
for $row in $heading_dict.keys.sort
$heading_dict[$row]
Title of Account
$row
(a)
|
$treeElements = navigate parent-child descendants from ferc:RetainedEarningsLineItems role "http://ferc.gov/form/2020-01-01/roles/Schedule/F2/RetainedEarnings" where $relationship.target-name != ferc:TransfersFromUnappropriatedUndistributedSubsidiaryEarningsContraPrimaryAccountAffected returns list (target, preferred-label, result-order);
$data-labels = list(for $row in $treeElements
$concept = $row[1];
$row_num = (filter $concept.references("http://ferc.gov/form/2020-01-01/roles/reference/formLocation") where ($item.part-by-name(ferc-part:Schedule).part-value == "118 - Schedule - Retained Earnings" and $item.part-by-name(ferc-part:ValueType).part-value.string == "Label" and "http://ferc.gov/form/2020-01-01/roles/label/" + $item.part-by-name(ferc-part:ColumnName).part-value.string == $row[2].role.uri)).to-list;
$conceptPeriod = $concept.period-type;
$conceptType = $concept.data-type.name.local-name;
$beginningBalance = if $row[2].role.uri == "http://ferc.gov/form/2020-01-01/roles/label/F2BeginningBalance"
true
else
false
$beginningRow = if ($row_num.part-by-name(ferc-part:Row)).length > 0
min(($row_num.part-by-name(ferc-part:Row)).part-value)
else
""
$endingRow = if ($row_num.part-by-name(ferc-part:Row)).length > 0
max(($row_num.part-by-name(ferc-part:Row)).part-value)
else
""
$contraAccount = if $concept.name == ferc:TransfersFromUnappropriatedUndistributedSubsidiaryEarnings
first(list([covered @concept = ferc:TransfersFromUnappropriatedUndistributedSubsidiaryEarningsContraPrimaryAccountAffected @unit @period=$currentDuration]))
else
none
$current = if $conceptType == "monetaryItemType"
if $conceptPeriod == "duration"
if list([covered @concept = $row[1] @period = $currentDuration]).length > 0
first(list([covered @concept = $row[1] @period = $currentDuration]))
else
none
else
if $beginningBalance
if list([covered @concept = $row[1] @period = $priorInstant]).length > 0
first(list([covered @concept = $row[1] @period = $priorInstant]))
else
none
else
if list([covered @concept = $row[1] @period = $currentInstant]).length > 0
first(list([covered @concept = $row[1] @period = $currentInstant]))
else
none
else
none
$prior = if $conceptType == "monetaryItemType"
if $conceptPeriod == "duration"
if list([covered @concept = $row[1] @period = $priorDuration]).length > 0
first(list([covered @concept = $row[1] @period = $priorDuration]))
else
none
else
if $beginningBalance
if list([covered @concept = $row[1] @period = $prior2Instant]).length > 0
first(list([covered @concept = $row[1] @period = $prior2Instant]))
else
none
else
if list([covered @concept = $row[1] @period = $prior12MonthsInstant]).length > 0
first(list([covered @concept = $row[1] @period = $prior12MonthsInstant]))
else
none
else
none
$sequenceReferences = (filter $concept.references("http://ferc.gov/form/2020-01-01/roles/reference/elementSequence") where ($item.part-by-name(ferc-part:ScheduleRole).part-value == "http://ferc.gov/form/2020-01-01/roles/Schedule/F2/RetainedEarnings") returns $item.part-by-name(ferc-part:SequenceRole).part-value).to-list;
/*** $breakdown = list($sequenceReferences.to-list);***/
$breakdown = list(
if $sequenceReferences.to-list.length > 0
$sequenceRole = $sequenceReferences[1];
$sequenceElements = navigate parent-child descendants role $sequenceRole returns list(target, preferred-label, result-order);
$axis = first(list(for $a in $sequenceElements
if $a.length > 0
$conceptRoll = $a[1];
if $conceptRoll.substitution.local-name == "dimensionItem"
$conceptRoll
else
skip
else
skip));
$lineItemsList = list(for $l in $sequenceElements
if $l.length > 0
$conceptRoll = $l[1];
if $conceptRoll.is-abstract
skip
else
$l
else
skip
);
$data1 =
list({covered {list(
if exists({@ferc:OrderNumber @unit=* @period = $currentDuration where $fact.dimension($axis) != none})
{@ferc:OrderNumber @unit=* @period = $currentDuration where $fact.dimension($axis) != none}
else
0,
if $beginningBalance
$beginningRow
else
$endingRow,
$lineItemsList[3][1],
if exists({@concept = $lineItemsList[2][1] @unit @period = $currentDuration where $fact.dimension($axis) != none})
{@concept = $lineItemsList[2][1] @unit @period = $currentDuration where $fact.dimension($axis) != none}
else
none,
if exists({@concept = $lineItemsList[4][1] @unit @period = $currentDuration where $fact.dimension($axis) != none} )
{@concept = $lineItemsList[4][1] @unit @period = $currentDuration where $fact.dimension($axis) != none}
else
none,
if exists({@concept = $lineItemsList[3][1] @unit @period = $currentDuration where $fact.dimension($axis) != none} )
{@concept = $lineItemsList[3][1] @unit @period = $currentDuration where $fact.dimension($axis) != none}
else
none,
if exists({@concept = $lineItemsList[3][1] @unit=* @period = $priorDuration where $fact.dimension($axis) != none})
{@concept = $lineItemsList[3][1] @unit=* @period = $priorDuration where $fact.dimension($axis) != none}
else
none
)}});
$data2 = list(for $x in $data1
if $x == list(0,$x[2],$x[3],none,none,none, none)
skip
else
$x);
$orders = set(for $x in $data2 $x[1]).sort;
$orderedData = list(for $order in $orders
for $row in $data2
if $row[1] != $order
skip
else
$row );
$data = list(for $z in range($orderedData.length)
$updatedNumber = $orderedData[$z][2].string + "." + $z.string;
list($orderedData[$z][1],$updatedNumber,$orderedData[$z][3],$orderedData[$z][4],$orderedData[$z][5],$orderedData[$z][6],$orderedData[$z][7])
);
for $row in $data
$row
else
skip
);
list(list(
0,
if $beginningBalance
$beginningRow
else
$endingRow,
$concept,
$concept.label($row[2].role.uri).text,
$contraAccount,
$current,
$prior
)) + $breakdown
);
for $rows in $data-labels
for $rowl in $rows
$rowl[2]
1
|
|
$rowl[5]
if $rowl[3].is-abstract "gray-out" else ""
300
|
$rowl[6]
if $rowl[3].is-abstract "gray-out" else ""
300
|
$rowl[7]
if $rowl[3].is-abstract "gray-out" else ""
300
|