Intercompany Material Elimination in SAP S/4HANA: CFIN, MDG Key Mapping, and Group Reporting Currency Type 31
Executive Summary
Section titled “Executive Summary”Intercompany profit elimination across entities with non-matching material IDs is one of the more architecturally misunderstood problems in SAP group reporting implementations. The instinct — find a “group material number” that both entities share and drive elimination off it — points in the wrong direction. The correct architecture is more nuanced and, once understood, more powerful: elimination in SAP Group Reporting keys off trading partner (VBUND) and Currency Type 31 (Group Valuation), not material identity. Material harmonization via MDG Key Mapping in Central Finance (CFIN) serves analytics precision and optional material-level granularity, but is not a prerequisite for the elimination itself.
This whitepaper synthesizes the full architecture across four layers — Material Ledger parallel valuation, CFIN replication and MDG Key Mapping, Group Reporting consolidation mechanics, and entity/segment reporting coexistence — using a concrete two-instance intercompany transfer scenario as the grounding case. It concludes with a corrected field-level data model, a precise currency type decision framework, and a practical recommendation on whether and how to extend CFIN’s coding block to preserve source material identity for entity-level close.
Context
Section titled “Context”I operate two separate S/4HANA instances — a manufacturing entity (MFG, Instance A) and a production/receiving entity (PRD, Instance B). Both instances replicate financial postings into a central CFIN client via SLT. My MFG entity sells intercompany to PRD at a transfer price; PRD receives the material, carries it in inventory, and ultimately sells externally.
The two entities assign different material IDs to the same physical item:
| Entity | Instance | Material ID |
|---|---|---|
| MFG (Seller) | Instance A | MFG-AZ-100002 |
| PRD (Receiver) | Instance B | PRD-CA-500188 |
PRD receives the material at a legal transfer price of $1,000.00 (Currency Types 10 and 30). The Material Ledger computes a group valuation of $643.05 under Currency Type 31, derived from a weighted average of actual costs including a source correction of $(14.75). The difference — $356.95 — represents the intercompany markup, posted as a system-generated delta to a valuation clearing account on both entities under Currency Type 31.
The business question: how do I eliminate the $356.95 intercompany markup at consolidation, and what role — if any — does a harmonized group material number play in that elimination?
The Group Valuation Stack
Section titled “The Group Valuation Stack”The $643.05 group cost is not a round or manually derived figure. It is the output of the Material Ledger actual costing run, which computes a periodic weighted average absorbing base procurement costs, manufacturing variances, exchange rate differences, and period-end source corrections. The $(14.75) source correction in the scenario reflects a price difference settled from prior-period special stock — a standard Material Ledger settlement mechanic.
{ "data": [ { "type": "waterfall", "orientation": "v", "measure": ["relative","relative","relative","relative","relative","relative","total","relative","total"], "x": ["Raw Material","Labor / Conversion","Overhead 1","Overhead 2","Overhead 3","Source Correction","Group Cost (CURTYPE 31)","IC Markup","Legal Transfer Price (CURTYPE 10/30)"], "y": [480.00, 145.20, 17.60, 10.00, 5.00, -14.75, 0, 356.95, 0], "connector": {"line": {"color": "rgb(63,63,63)"}}, "decreasing": {"marker": {"color": "#e65100"}}, "increasing": {"marker": {"color": "#2e7d32"}}, "totals": {"marker": {"color": "#1565c0"}}, "name": "Cost Build-up" } ], "layout": { "title": "Intercompany Material Cost Build-up — Group vs. Legal Valuation", "yaxis": {"title": "USD ($)"}, "showlegend": false }}The Material Ledger posts two currency views simultaneously on every intercompany financial document:
My Sending Entity (MFG) — At IC Billing:
| Account | Currency Type 10/30 (Legal) | Currency Type 31 (Group Val) |
|---|---|---|
| Accounts Receivable | +$1,000.00 | +$1,000.00 |
| Revenue | −$1,000.00 | −$643.05 |
| Valuation Clearing (delta) | — | −$356.95 |
My Receiving Entity (PRD) — At Goods Receipt / Invoice:
| Account | Currency Type 10/30 (Legal) | Currency Type 31 (Group Val) |
|---|---|---|
| Inventory / GR-IR | +$1,000.00 | +$643.05 |
| Valuation Clearing (delta) | — | +$356.95 |
| Accounts Payable | −$1,000.00 | −$1,000.00 |
The $356.95 delta is a system-generated parallel valuation posting, not a manual journal entry. It appears on both sides simultaneously. Under Currency Type 31 viewed at group level, the two clearing postings net to zero — self-eliminating by design. This is the architectural intent of the parallel valuation framework: the elimination is structural, embedded in the valuation layer, rather than modeled in the consolidation layer.
The Two Elimination Types — Material-Agnostic by Design
Section titled “The Two Elimination Types — Material-Agnostic by Design”Group Reporting’s consolidation engine operates on three core dimensions: FS item (group chart of accounts), consolidation unit (legal entity), and partner unit (VBUND — trading partner). Material number is not in this set by default. This has two direct consequences for the intercompany scenario.
IC AR/AP and IC Revenue/COGS
Section titled “IC AR/AP and IC Revenue/COGS”These are eliminated on VBUND plus FS item — never on material number. As long as both source systems stamp the trading partner (derived from the IC customer/vendor and company code assignment), the fact that MFG calls it MFG-AZ-100002 and PRD calls it PRD-CA-500188 is architecturally irrelevant. The automated elimination postings at consolidation posting level 20 (document types 2E through 2H) execute without reference to any material dimension.
IC Profit in Inventory (IPI)
Section titled “IC Profit in Inventory (IPI)”This is the elimination type that the material ID question actually implicates. The standard delivered IPI method operates at partner unit level — it applies a markup percentage (Percent f. Partner) to reported ending inventory held against that partner, posting a reduction to inventory, an adjustment to the buyer’s net income, and a deferred profit entry on the seller’s side. This method also does not require matched material IDs — it eliminates on partner plus inventory value plus markup rate.
The $356.95 markup in the scenario corresponds to 35.695% of the $1,000 legal transfer price. If I operate on Currency Type 30 in Group Reporting, this percentage becomes the Percent f. Partner configuration input and the IPI method models the elimination. If Currency Type 31 is used, the elimination is direct — the markup never enters the consolidation dataset in the first place.
MDG Key Mapping in CFIN — What It Does and What It Does Not Do
Section titled “MDG Key Mapping in CFIN — What It Does and What It Does Not Do”The Mapping Mechanics
Section titled “The Mapping Mechanics”CFIN’s replication pipeline intercepts every FI/CO document from both my source instances at the SLT layer, resolves all object ID translations via the MDG Key Mapping layer, validates through AIF, and posts the translated document into ACDOCA. The translation is substitutive: the source material ID is replaced by the central material ID in the MATNR field before the document posts.
flowchart TD classDef source fill:#fff3e0,stroke:#e65100 classDef integration fill:#e8f5e9,stroke:#2e7d32 classDef target fill:#e3f2fd,stroke:#1565c0 classDef reporting fill:#f3e5f5,stroke:#6a1b9a
MFG["MFG Instance A<br>MATNR = MFG-AZ-100002<br>VBUND = PRD-CA<br>CURTYPE 10 = $1,000<br>CURTYPE 31 = $643.05"]:::source PRD["PRD Instance B<br>MATNR = PRD-CA-500188<br>VBUND = MFG-AZ<br>CURTYPE 10 = $1,000<br>CURTYPE 31 = $643.05"]:::source
SLT_A["SLT — Instance A"]:::integration SLT_B["SLT — Instance B"]:::integration
MAP["MDG Key Mapping<br>MFG-AZ-100002 → CENTRAL-MAT-X<br>PRD-CA-500188 → CENTRAL-MAT-X<br>FINS_CFIN_MAP_MANAGE"]:::integration
AIF["AIF Validation<br>Central material exists?<br>All mappings resolved?"]:::integration
ACDOCA["ACDOCA — CFIN Universal Journal<br>MATNR = CENTRAL-MAT-X<br>BELNR_SENDER = source doc ref<br>LOGSYS = source instance<br>VBUND stamped<br>CURTYPE 10 + 31 carried"]:::target
ERR["AIF Error Queue<br>IFMON / AIF ERR<br>Doc held — not posted"]:::reporting
MFG --> SLT_A PRD --> SLT_B SLT_A --> MAP SLT_B --> MAP MAP --> AIF AIF -->|"All mappings resolved"| ACDOCA AIF -->|"Mapping missing"| ERRIf a source material has no mapping entry, the document is held in the AIF error queue — not silently dropped, not posted with a blank material. This makes mapping completeness an operational discipline: every new IC material created in either source instance after go-live requires a corresponding mapping entry before the first IC transaction posts.
What MDG Key Mapping Does and Does Not Do
Section titled “What MDG Key Mapping Does and Does Not Do”| What It Does | What It Does Not Do |
|---|---|
Substitutes source MATNR with central MATNR on every replicated doc | Sync logistics — no MM/WM impact in source systems |
| Resolves at replication time, before ACDOCA post | Create a Group Reporting consolidation dimension automatically |
| Retains source document reference for drill-back | Eliminate IC profit — that is Group Reporting’s job |
| Applies to all doc types carrying that material | Handle value differences — markup still sits in inventory |
The mapping is purely an ID translation at the accounting document level. It ensures that when both documents land in CFIN, they carry the same material identifier — providing the foundation for material-level analytics and optional material-level IPI in Group Reporting. But the $356.95 elimination is driven by VBUND plus currency type configuration, not by the mapping itself.
What Lands in ACDOCA After Harmonization
Section titled “What Lands in ACDOCA After Harmonization”After MDG Key Mapping resolves, my two source documents post into CFIN ACDOCA as follows:
| ACDOCA Field | MFG Doc (Instance A) | PRD Doc (Instance B) |
|---|---|---|
MATNR | CENTRAL-MAT-X | CENTRAL-MAT-X |
BUKRS | MFG-AZ | PRD-CA |
VBUND | PRD-CA | MFG-AZ |
LOGSYS | MFG_INSTANCE_A | PRD_INSTANCE_B |
BELNR_SENDER | Source doc # (MFG) | Source doc # (PRD) |
BUKRS_SENDER | MFG-AZ | PRD-CA |
| Amount — CURTYPE 10/30 | $1,000.00 | $1,000.00 |
| Amount — CURTYPE 31 | $643.05 | $643.05 |
| Valuation clearing — CURTYPE 31 | −$356.95 | +$356.95 |
Both source material IDs are gone from MATNR. They exist in the MDG mapping tables as lookup keys and are recoverable via drill-back through BELNR_SENDER + LOGSYS to the originating document in the source instance.
The Currency Type Decision — The Central Architectural Choice
Section titled “The Currency Type Decision — The Central Architectural Choice”Whether Group Reporting reads Currency Type 31 or Currency Type 30 for consolidation data collection is the single most consequential configuration decision in my architecture. It determines whether the $356.95 elimination is structural or modeled.
flowchart TD classDef source fill:#fff3e0,stroke:#e65100 classDef integration fill:#e8f5e9,stroke:#2e7d32 classDef target fill:#e3f2fd,stroke:#1565c0 classDef reporting fill:#f3e5f5,stroke:#6a1b9a
ACDOCA["CFIN ACDOCA<br>Both currency types present"]:::integration
subgraph PATH_A["Path A — Currency Type 31"] A1["GR reads CURTYPE 31<br>PRD inventory = $643.05<br>MFG revenue = $643.05"]:::target A2["Delta clearing accounts<br>net to zero across entities"]:::target A3["IC elimination: direct offset<br>on VBUND + FS item<br>No IPI markup % needed"]:::target A4["Result: $643.05 consolidated<br>$0 residual IC profit"]:::reporting end
subgraph PATH_B["Path B — Currency Type 30"] B1["GR reads CURTYPE 30<br>PRD inventory = $1,000.00<br>MFG revenue = $1,000.00"]:::target B2["$356.95 markup IS<br>in reported dataset"]:::source B3["Manual consolidation journal<br>required to carve out $356.95<br>BEFORE elimination runs"]:::source B4["IPI method runs on<br>adjusted $643.05"]:::reporting B5["Result: $643.05 consolidated<br>Same end state — operationally fragile"]:::source end
ACDOCA --> A1 ACDOCA --> B1 A1 --> A2 --> A3 --> A4 B1 --> B2 --> B3 --> B4 --> B5Path A: Currency Type 31 — The Clean Architecture
Section titled “Path A: Currency Type 31 — The Clean Architecture”When I configure Group Reporting’s data collection to read Currency Type 31:
- PRD reports inventory at $643.05 — the markup-free group cost
- MFG reports revenue at $643.05
- The $356.95 valuation clearing postings net to zero across both entities and require no intervention
- IC elimination runs as a straightforward partner-unit offset on
VBUNDplus FS item - No IPI markup percentage configuration is needed
- The elimination is exact — it reflects actual weighted average costs from the Material Ledger run, including the $(14.75) source correction
Prerequisite: Material Ledger with parallel valuation must be active and writing Currency Type 31 in both of my source instances.
Path B: Currency Type 30 — The Manual Adjustment Path
Section titled “Path B: Currency Type 30 — The Manual Adjustment Path”When I configure Group Reporting to read Currency Type 30:
- PRD inventory and MFG revenue both enter consolidation at $1,000.00 (legal transfer price)
- The $356.95 markup is present in the reported dataset
- I must record a manual consolidation journal to reduce PRD inventory by $356.95 and adjust MFG deferred profit before the IC elimination task runs
- The manual adjustment must be recalculated every period as the Material Ledger weighted average changes
- If the source correction changes (the $(14.75) shifts), the manual journal must be updated accordingly
This path reaches the same $643.05 consolidated inventory figure but introduces period-close dependency, recalculation risk, and an operational step that breaks the automated consolidation close cycle. The valuation clearing account mechanism in Currency Type 31 exists precisely to eliminate this manual step by design.
Decision Matrix
Section titled “Decision Matrix”| Factor | Currency Type 31 | Currency Type 30 |
|---|---|---|
| ML parallel valuation required in source | ✅ Yes — both instances | ❌ Not required |
| Markup in GR reported data | ❌ Never enters | ✅ Present — must be carved out |
| IPI method configuration needed | ❌ Not required | ✅ Required + manual adjustment first |
| Elimination precision | Exact (actual ML costs) | Modeled (% approximation) |
| Period-close operational complexity | Low — automated | High — manual recalculation per period |
| Long-term scalability | High | Low — fragile as markup rates change |
Entity and Segment Reporting — Preserving Source Material Identity
Section titled “Entity and Segment Reporting — Preserving Source Material Identity”The Tension
Section titled “The Tension”Once MDG Key Mapping substitutes CENTRAL-MAT-X into MATNR, my entity and segment-level financial close reports running in CFIN lose the original material granularity. A cost center report for the MFG-AZ entity in CFIN shows CENTRAL-MAT-X — which is meaningless for that entity’s own operational close and product-level P&L.
What Is and Is Not Delivered in ACDOCA
Section titled “What Is and Is Not Delivered in ACDOCA”The CFIN replication framework delivers the following source reference fields in ACDOCA as standard, populated automatically by the SLT/AIF pipeline:
| Field | Delivered | Content |
|---|---|---|
LOGSYS | ✅ Standard | Source logical system |
BUKRS_SENDER | ✅ Standard | Source company code |
BELNR_SENDER | ✅ Standard | Source document number |
GJAHR_SENDER | ✅ Standard | Source fiscal year |
DOCLN_SENDER | ✅ Standard | Source line item |
MATNR | ✅ Standard | Overwritten — carries CENTRAL-MAT-X post-mapping |
| Source material ID as queryable ACDOCA field | ❌ Not standard | Requires custom development |
The source document pointer (BELNR_SENDER + LOGSYS) enables drill-back to the originating document in the source instance, where the original material ID is visible. However, the source material ID is not carried forward as a separately queryable field in ACDOCA by default. Drill-back is the delivered mechanism for recovering it — not a parallel field.
Three Options for Handling Source Material Identity
Section titled “Three Options for Handling Source Material Identity”flowchart TD classDef source fill:#fff3e0,stroke:#e65100 classDef integration fill:#e8f5e9,stroke:#2e7d32 classDef target fill:#e3f2fd,stroke:#1565c0 classDef reporting fill:#f3e5f5,stroke:#6a1b9a
Q["Requirement: Source material ID<br>accessible for entity/segment reporting?"]:::source
OPT_A["Option A — Drill-Back Only<br>BELNR_SENDER + LOGSYS<br>Navigate to source doc<br>No custom development"]:::target
OPT_B["Option B — Custom Coding Block<br>Add ZMATNR_SRC to CI_COBL<br>Populate via BAdI at replication<br>Source MATNR queryable in ACDOCA"]:::integration
OPT_C["Option C — Analytics Layer Join<br>MDG mapping table lookup at runtime<br>in SAC or BW report<br>No ACDOCA change"]:::reporting
DA["Sufficient for:<br>Audit trail only<br>Infrequent lookup<br>Zero dev budget"]:::source DB["Sufficient for:<br>Entity P&L by source material<br>Segment cost reports in CFIN<br>Product-level profitability"]:::integration DC["Sufficient for:<br>Reporting teams can absorb<br>runtime MDG join<br>No transport overhead"]:::reporting
Q --> OPT_A Q --> OPT_B Q --> OPT_C OPT_A --> DA OPT_B --> DB OPT_C --> DCOption A: Drill-Back Only
Section titled “Option A: Drill-Back Only”The delivered source reference fields (BELNR_SENDER + LOGSYS) allow navigation from the CFIN consolidated document back to the originating transaction in my source instance. The original material ID is visible there. No development is required. This is sufficient for audit use cases and infrequent lookups but does not support entity-level reports that need to group or filter by source material ID directly within CFIN.
Option B: Custom Coding Block Field (CI_COBL)
Section titled “Option B: Custom Coding Block Field (CI_COBL)”The standard SAP-endorsed extension pattern for adding a queryable source material field to ACDOCA is a CI_COBL append combined with a BAdI implementation in the CFIN replication pipeline. The implementation sequence:
| Step | Action | Object |
|---|---|---|
| 1 | Add custom field to coding block | CI_COBL append — e.g. ZMATNR_SRC (18 char, matches MATNR type) |
| 2 | Field auto-propagates to ACDOCA | Standard SAP append mechanism — no manual table change |
| 3 | Implement BAdI | FINS_CFIN_FI_TRANS / FINS_CFIN_CO_TRANS |
| 4 | In BAdI: read source MATNR from incoming document before mapping fires | BAdI implementation class |
| 5 | Write source MATNR to ZMATNR_SRC | Custom field populated pre-substitution |
| 6 | Standard MDG Key Mapping overwrites MATNR with CENTRAL-MAT-X | Delivered mapping — unchanged |
| 7 | ACDOCA carries both identities | MATNR = CENTRAL-MAT-X / ZMATNR_SRC = MFG-AZ-100002 |
The BAdI fires within the replication pipeline before the document posts to ACDOCA, giving the implementation class access to the full document context including the pre-mapping source material ID. This is a development effort — it requires transport discipline and ongoing maintenance as new source systems or new materials are onboarded to CFIN.
Option C: Analytics Layer Join
Section titled “Option C: Analytics Layer Join”For my reporting teams working in SAC or BW, the MDG mapping table can be joined at query runtime — the report resolves CENTRAL-MAT-X back to MFG-AZ-100002 or PRD-CA-500188 via the mapping table without any ACDOCA field change. This approach has no transport overhead but introduces runtime join complexity and depends on the mapping table being accessible from the analytics layer.
Resulting ACDOCA Field Map Under Each Option
Section titled “Resulting ACDOCA Field Map Under Each Option”| Field | Option A (Delivered Only) | Option B (Custom CI_COBL) |
|---|---|---|
MATNR | CENTRAL-MAT-X | CENTRAL-MAT-X |
ZMATNR_SRC | ❌ Does not exist | MFG-AZ-100002 or PRD-CA-500188 |
BELNR_SENDER | Source doc # | Source doc # |
LOGSYS | MFG_INST_A | MFG_INST_A |
| Source MATNR recoverable? | Via drill-back only | ✅ Directly queryable in ACDOCA |
| Entity segment report filter | BUKRS + drill-back | BUKRS + ZMATNR_SRC directly |
Under Option B, both identities coexist on the same ACDOCA line item. The central material enables group consolidation; the source material field enables entity close. No separate data store or reconciliation layer is required.
End-to-End Architecture
Section titled “End-to-End Architecture”flowchart TD classDef source fill:#fff3e0,stroke:#e65100 classDef integration fill:#e8f5e9,stroke:#2e7d32 classDef target fill:#e3f2fd,stroke:#1565c0 classDef reporting fill:#f3e5f5,stroke:#6a1b9a
MFG_SRC["MFG Instance A<br>MATNR: MFG-AZ-100002<br>ML Parallel Val Active<br>CURTYPE 10 + 31 written"]:::source PRD_SRC["PRD Instance B<br>MATNR: PRD-CA-500188<br>ML Parallel Val Active<br>CURTYPE 10 + 31 written"]:::source
SLT["SLT Replication<br>FI + CO Documents"]:::integration
MDG["MDG Key Mapping<br>FINS_CFIN_MAP_MANAGE<br>Both MATNRs → CENTRAL-MAT-X"]:::integration
BADI["BAdI — FINS_CFIN_FI_TRANS<br>Captures source MATNR<br>Writes to ZMATNR_SRC<br>before mapping fires"]:::integration
AIF["AIF Validation + Monitoring<br>IFMON / AIF ERR"]:::integration
ACDOCA["CFIN ACDOCA<br>MATNR = CENTRAL-MAT-X<br>ZMATNR_SRC = source MATNR<br>VBUND stamped<br>CURTYPE 10 = $1,000<br>CURTYPE 31 = $643.05<br>Clearing delta = $356.95"]:::target
ENT["Entity / Segment Reporting<br>Filter: BUKRS + ZMATNR_SRC<br>Source material granularity intact"]:::reporting
GR["Group Reporting<br>Data collection: CURTYPE 31<br>MATNR = CENTRAL-MAT-X<br>VBUND drives elimination"]:::target
ELIM["IC Elimination<br>AR/AP + Rev/COGS: VBUND + FS item<br>IPI: delta clearing nets to zero<br>$356.95 eliminated structurally"]:::reporting
CONSOL["Consolidated Financials<br>Inventory: $643.05<br>IC Profit: $0<br>SAC / Analysis for Office"]:::reporting
MFG_SRC --> SLT PRD_SRC --> SLT SLT --> MDG SLT --> BADI BADI --> AIF MDG --> AIF AIF --> ACDOCA ACDOCA --> ENT ACDOCA --> GR GR --> ELIM ELIM --> CONSOLRecommendation
Section titled “Recommendation”Immediate — What to Lock In Now
Section titled “Immediate — What to Lock In Now”1. Enforce VBUND on every intercompany posting in both my source instances. Trading partner stamping is the foundational prerequisite for all IC elimination types — AR/AP, revenue/COGS, and IPI. This is a configuration and master data discipline item, not a development effort.
2. Activate Material Ledger parallel valuation in both my MFG and PRD instances and configure Group Reporting data collection to read Currency Type 31. This is the single highest-leverage architectural decision. It makes the $356.95 elimination structural — embedded in the valuation layer — rather than modeled through a markup percentage. Period-close automation is only fully achievable on this path.
3. Register MDG Key Mapping entries for all intercompany materials before go-live. Both MFG-AZ-100002 and PRD-CA-500188 must map to CENTRAL-MAT-X in FINS_CFIN_MAP_MANAGE before the first IC transaction replicates. I need to establish a governance process so new IC materials in either source instance trigger a mapping entry creation as part of material master workflow.
Near-Term — If Entity/Segment Close Runs in CFIN
Section titled “Near-Term — If Entity/Segment Close Runs in CFIN”4. Implement the CI_COBL custom field ZMATNR_SRC with the BAdI FINS_CFIN_FI_TRANS. If my entity or segment-level financial close reporting in CFIN requires filtering or aggregation by source material ID, the custom coding block field is the correct extension pattern. It is the SAP-endorsed extensibility path, not a workaround. I should scope the development to capture the source MATNR pre-mapping and write it to ZMATNR_SRC before the MDG substitution fires. Both identities then coexist in ACDOCA — CENTRAL-MAT-X for group consolidation, the source ID for entity close — with no separate data store required.
Long-Term — Toward Direct Value Elimination
Section titled “Long-Term — Toward Direct Value Elimination”5. Track the S/4HANA 2025 Universal Parallel Accounting group valuation ledger. The trajectory of the parallel valuation architecture moves toward group valuation as a first-class ledger, making the markup-free value directly replicable to Group Reporting without reliance on a configured markup percentage. When available in my release cycle, this eliminates the last remaining modeling dependency in the IPI elimination path and makes the architecture fully driven by actual Material Ledger values end to end.
Conclusion
Section titled “Conclusion”The core insight I validate in this whitepaper is that intercompany material elimination in SAP Group Reporting does not require matching material IDs between sending and receiving entities, and there is no native group material number object that drives the elimination engine. Elimination keys off trading partner (VBUND) for AR/AP and revenue/COGS flows, and off Currency Type 31 for profit-in-inventory elimination — the $356.95 intercompany markup in this scenario is eliminated structurally through the Material Ledger’s parallel valuation delta posting mechanism when Group Reporting reads Currency Type 31.
MDG Key Mapping in CFIN provides genuine value — it harmonizes both source material IDs to a single central identity (CENTRAL-MAT-X) in ACDOCA, enabling group-level analytics and optional material-granularity IPI — but it is an analytics and precision enabler, not an elimination prerequisite. The source material identity is not lost in this process: delivered source reference fields support drill-back, and a CI_COBL custom field with a BAdI implementation preserves the source ID as a directly queryable ACDOCA dimension for entity and segment close without any architectural compromise to the group consolidation path.
The choice between Currency Type 31 and Currency Type 30 for Group Reporting data collection is the decision that determines whether the $356.95 elimination is automated and exact, or manual, modeled, and period-close-dependent. For a multi-instance landscape with Material Ledger active in both source systems, Currency Type 31 is the unambiguous architectural recommendation.