Originally created by: grynn-in
We need a clear, single place to configure the consolidation currency (the currency the group reports in). This issue defines how to do that — and, just as importantly, what not to build yet.
In one line: add a single group consolidation currency to EPM Settings now (Phase 1). Defer per-region currencies (Europe in EUR, Asia in INR) to a later feature (Phase 2), because they need a new translation engine, not just a setting.
USD), with nothing enforcing that all members of a group agree. There is no single "this is the group's consolidation currency" setting.There are two accepted methods under IAS 21:
| Method | What it does |
|---|---|
| Direct (what we do) | Translate each entity straight into the final group currency (USD) |
| Step-by-step | Translate up through each tier: CHF/GBP → Europe (EUR) → Global (USD) |
For the global USD numbers, both methods give the same total net assets — translating CHF→EUR→USD lands on the same place as CHF→USD, as long as rates are consistent. So doing the global consolidation in one step is not a shortcut or a bug; it's a valid method.
The only number that differs between the two methods is the split of equity between retained earnings and the translation reserve (CTA) — and that difference only has a real effect when a foreign sub-group is sold (the amount of translation reserve recycled to P&L depends on the method).
What single-step genuinely cannot do is produce regional statutory statements — e.g. "Europe consolidated in EUR" for a German/EU filing. That is a separate legal deliverable, not a correction to the USD number.
USD), as a Link to the Currency master (ties to [#91] — ISO 4217 list), not free text.Do not add a per-group currency field now. Until the Phase 2 engine exists, setting "Europe = EUR" would do nothing — the engine still translates every entity straight to USD. Shipping that field early makes the system look configurable when it isn't (the same silent no-op trap flagged on the Historical Equity Rate keys, [#92]).
Originally posted by: grynn-in
Decision (next round, phased). Biggest consolidation feature gap. Recommend: Phase 1 first — EPM-Settings-driven single reporting currency (direct method); it's self-contained and the near-term win. Defer Phase 2 (step-by-step sub-consolidation) until [#130] is resolved — sub-consolidation depends on a real intermediate-group hierarchy (the GROUP_EMEA-vs-seed divergence), so building it before reconciling doctype↔seed would bake in the wrong structure. Keeping open; P1 is the next big feature to pick up.
Related
Tickets:
#130Originally posted by: grynn-in
📋 Decision brief (options + trade-offs + recommendation):
docs/developer-guide/decisions/konsolidat-93-consolidation-currency.md— merged in [#133].Related
Tickets:
#133Originally posted by: grynn-in
Rescoped on 12 Sep 2026 after an issue review against main.
Phase 1's EPM Settings field
consolidation_currencyexists in konsol (get_consolidation_currency), but nothing reads it. dbt takes the currency from the Consolidation Group'sreporting_currency, which konsol now describes as the group's presentation currency. The reporting-bases proposal gives each basis its own presentation currency.Decide where the currency lives, then wire the setting in or drop it. Phase 2 (step-by-step) is untouched.
Originally posted by: grynn-in
Decided by the user on 13 Sep 2026 (recorded in HANDOFF with the group-2 work). The presentation currency lives on each Consolidation Group node, which is what the translation already reads:
reporting_currencybecomes a Link to Currency and is validated, and the unused EPM Settingsconsolidation_currencyis removed. The direct translation method stays; step-by-step sub-consolidation stays deferred. A reporting basis may override the currency later. Rates: grynn-in/konsol#103.Ticket changed by: grynn-in