Skip to content

Commit 720803d

Browse files
dgunningclaude
andcommitted
Fix DIS cash flow stitching when companies switch between aggregate and continuing-operations concepts (#646)
Companies like Disney switch between aggregate cash flow concepts (e.g. NetCashProvidedByUsedInOperatingActivities) and continuing-operations variants across filing years. Added standard concept mappings so the stitcher can merge these equivalent rows. Also fixed a period_type variable shadowing bug in the stitching orchestrator. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 37a69e4 commit 720803d

File tree

4 files changed

+60
-8
lines changed

4 files changed

+60
-8
lines changed

edgar/xbrl/standardization/display_names.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,5 +94,10 @@
9494
"ForecastedIntangibleAmortizationYear3": "Forecasted Amortization, Year 3",
9595
"ForecastedIntangibleAmortizationYear4": "Forecasted Amortization, Year 4",
9696
"ForecastedIntangibleAmortizationYear5": "Forecasted Amortization, Year 5",
97-
"ForecastedIntangibleAmortizationAfterYear5": "Forecasted Amortization, Thereafter"
97+
"ForecastedIntangibleAmortizationAfterYear5": "Forecasted Amortization, Thereafter",
98+
"NetCashFromOperatingActivities": "Net Cash from Operating Activities",
99+
"NetCashFromInvestingActivities": "Net Cash from Investing Activities",
100+
"NetCashFromFinancingActivities": "Net Cash from Financing Activities",
101+
"NetChangeInCash": "Net Change in Cash",
102+
"CashAndCashEquivalents": "Cash and Cash Equivalents"
98103
}

edgar/xbrl/standardization/exclusions.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
"BusinessCombinationSeparatelyRecognizedTransactionsAdditionalDisclosuresAcquisitionCostExpensed",
2929
"CapitalizedContractCostAmortization",
3030
"CashAndCashEquivalentsPeriodIncreaseDecrease",
31-
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
31+
# CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
32+
# removed from exclusions: needed for cash flow stitching (ending cash balance)
3233
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
3334
"ChangeInReportingEntityEarningsPerShareBasic",
3435
"ChangeInReportingEntityEarningsPerShareDiluted",
@@ -158,7 +159,8 @@
158159
"IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
159160
"IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign",
160161
"IncomeLossFromContinuingOperationsBeforeInterestExpenseInterestIncomeIncomeTaxesExtraordinaryItemsNoncontrollingInterestsNet",
161-
"IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest",
162+
# IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
163+
# removed from exclusions: needed for cash flow stitching (net income starting line)
162164
"IncomeLossFromContinuingOperationsPerBasicAndDilutedShare",
163165
"IncomeLossFromContinuingOperationsPerBasicShare",
164166
"IncomeLossFromContinuingOperationsPerDilutedShare",
@@ -201,9 +203,9 @@
201203
"LineOfCreditFacilityRemainingBorrowingCapacity",
202204
"MembersCapital",
203205
"NetAssetValuePerShare",
204-
"NetCashProvidedByUsedInFinancingActivities",
205-
"NetCashProvidedByUsedInInvestingActivities",
206-
"NetCashProvidedByUsedInOperatingActivities",
206+
# NetCashProvidedByUsedIn*Activities removed from exclusions:
207+
# These are cash flow subtotals needed for stitching across filings
208+
# where companies switch between aggregate and continuing-operations variants
207209
"NetIncomeLossAvailableToCommonStockholdersDiluted",
208210
"NetIncomeLossFromDiscontinuedOperationsAvailableToCommonShareholdersBasic",
209211
"NetIncomeLossIncludingPortionAttributableToNonredeemableNoncontrollingInterest",

edgar/xbrl/standardization/gaap_mappings.json

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11396,5 +11396,50 @@
1139611396
"standard_tags": [
1139711397
"InterestExpense"
1139811398
]
11399+
},
11400+
"NetCashProvidedByUsedInOperatingActivities": {
11401+
"standard_tags": [
11402+
"NetCashFromOperatingActivities"
11403+
]
11404+
},
11405+
"NetCashProvidedByUsedInOperatingActivitiesContinuingOperations": {
11406+
"standard_tags": [
11407+
"NetCashFromOperatingActivities"
11408+
]
11409+
},
11410+
"NetCashProvidedByUsedInInvestingActivities": {
11411+
"standard_tags": [
11412+
"NetCashFromInvestingActivities"
11413+
]
11414+
},
11415+
"NetCashProvidedByUsedInInvestingActivitiesContinuingOperations": {
11416+
"standard_tags": [
11417+
"NetCashFromInvestingActivities"
11418+
]
11419+
},
11420+
"NetCashProvidedByUsedInFinancingActivities": {
11421+
"standard_tags": [
11422+
"NetCashFromFinancingActivities"
11423+
]
11424+
},
11425+
"NetCashProvidedByUsedInFinancingActivitiesContinuingOperations": {
11426+
"standard_tags": [
11427+
"NetCashFromFinancingActivities"
11428+
]
11429+
},
11430+
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
11431+
"standard_tags": [
11432+
"NetChangeInCash"
11433+
]
11434+
},
11435+
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect": {
11436+
"standard_tags": [
11437+
"NetChangeInCash"
11438+
]
11439+
},
11440+
"IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest": {
11441+
"standard_tags": [
11442+
"ProfitLoss"
11443+
]
1139911444
}
1140011445
}

edgar/xbrl/stitching/core.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -604,11 +604,11 @@ def stitch_statements(
604604

605605
# Update the period label to include information from entity_info
606606
display_date = period_metadata['display_date']
607-
period_type = period_metadata['period_type']
607+
meta_period_type = period_metadata['period_type']
608608
fiscal_period = period_metadata.get('fiscal_period')
609609

610610
# Create a more informative label
611-
if period_type == 'instant':
611+
if meta_period_type == 'instant':
612612
if fiscal_period == 'FY':
613613
period_label = f"FY {display_date}"
614614
else:

0 commit comments

Comments
 (0)