Skip to main content

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.

note

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

CTESourceOutput
nci_profitCTB is_pnl = 1, sum(nci_amount)share_of_profit per period
nci_bs_balanceCTB 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.

note

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 modelamount mapped frommain_accountjournal_id
gold_disposal_adjustmentsgain_loss_amountDISPOSALDSP_<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.sql
  • dbt_project/models/gold/gold_nci_movement_schedule.sql
  • dbt_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