Disposal & Deconsolidation
How Konsolidat handles loss of control during the period: the disposal gain/loss, recycling of accumulated currency translation adjustment (CTA) to P&L, and the non-controlling interest (NCI) movement schedule.
Implemented by gold_disposal_adjustments (PRD-12) and the reporting model
gold_nci_movement_schedule (PRD-13). Both read temporal ownership data from
epm_staging.ownership_periods; the disposal model posts into
gold_fully_consolidated_tb. Its companion is Step-Acquisition.
Shared inputs — the ownership_periods source and the CTB net-asset / P&L base
— are described on the Step-Acquisition
page. Disposal rows are recognised where is_disposal = 1 and
disposal_date < '9999-12-31'.
Disposal gain/loss & CTA recycling
Source: gold_disposal_adjustments.sql. Output grain is group / entity / period
with a gain_loss_amount and an adjustment_type. Two adjustment_type values
are unioned.
1. Disposal gain/loss (disposal_gain_loss)
For each disposal period, net assets at the disposal date come from CTB
(is_balance_sheet = 1), and remaining goodwill is read back from this group's
own acquisition output:
-- remaining_goodwill
sum(adjustment_amount) from gold_acquisition_adjustments
where adjustment_type = 'goodwill'
The gain/loss is:
gain_loss_amount = disposal_price
- (net_assets × ownership_pct / 100)
- remaining_goodwill
Dated to the disposal month (toYear/toMonth of disposal_date),
adjustment_type = 'disposal_gain_loss', emitted only where
abs(gain_loss_amount) > 0.01.
2. CTA recycling (cta_recycling)
On loss of control the accumulated currency translation adjustment is
reclassified from equity to P&L (IAS 21.48). The model sums cta_amount from
gold_fx_revaluation for the disposed entity and reverses its sign:
gain_loss_amount = -sum(fx.cta_amount)
adjustment_type = 'cta_recycling'
disposal_price, net_assets, and remaining_goodwill are set to 0 on these
rows (they carry only the recycled CTA). Dated to the disposal month, emitted
where abs(gain_loss_amount) > 0.01.
NCI movement schedule
Source: gold_nci_movement_schedule.sql. This is a reporting/reconciliation
model — it is not unioned into the consolidated TB. It builds a per-entity,
per-period NCI roll-forward in the spirit of
opening → share_of_profit → OCI → dividends → acquisition → disposal → closing.
See also Minority Interest for how NCI is split at
consolidation.
Scope
Only entities that are partially owned and fully consolidated qualify
(consolidation_groups seed: ownership_pct < 100 AND consolidation_method = 'full'). The model derives:
ownership_pct = ownership_pct / 100
nci_pct = 1 - ownership_pct / 100
Movements
| CTE | Source | Output |
|---|---|---|
nci_profit | CTB is_pnl = 1, sum(nci_amount) | share_of_profit per period |
nci_bs_balance | CTB is_balance_sheet = 1, sum(nci_amount) | nci_closing_balance per period |
Periods are the union (union distinct) of periods appearing in either P&L or
balance-sheet NCI, joined back to the qualifying entities. Output columns:
consolidation_group, data_area_id, entity_name, fiscal_year,
fiscal_period, nci_pct, nci_closing_balance, share_of_profit,
consolidation_method. Rows with a null fiscal_year are dropped.
The header comment references full vs partial goodwill methods and additional
movement lines (OCI, dividends, acquisition, disposal). The current
implementation populates share_of_profit and nci_closing_balance from the
consolidated TB nci_amount; the other movement lines are not yet computed as
separate columns.
How it posts into consolidation
gold_disposal_adjustments is folded into gold_fully_consolidated_tb as
Layer 6 ("Acquisition & disposal adjustments"), alongside the
acquisition entries:
| Source model | amount mapped from | main_account | journal_id |
|---|---|---|---|
gold_disposal_adjustments | gain_loss_amount | DISPOSAL | DSP_<data_area_id> |
The adjustment_type is carried forward, so the fully consolidated TB can
distinguish disposal_gain_loss and cta_recycling rows. The NCI movement
schedule is a standalone reporting model and does not feed the consolidated
TB.
Source files
dbt_project/models/gold/gold_disposal_adjustments.sqldbt_project/models/gold/gold_nci_movement_schedule.sqldbt_project/models/gold/gold_fully_consolidated_tb.sql(Layer 6 integration)dbt_project/models/staging/_staging__sources.yml(ownership_periods),dbt_project/seeds/consolidation_groups.csv