Lesson 2 of 5
Financial reconciliation
10 min
Finance owners sign off migrated balances only when they tie out to the old system at the level they report and audit. In Contoso's Wave 2, Alternadores del Norte is loaded from its non-SAP legacy ERP into the converted SAP S/4HANA system as company code 1910 (MXN), plant 1910 Monterrey. Dan must be able to show, by company code, ledger, currency and account, that what was in the legacy ERP at the key date is what is in SAP S/4HANA after the load, with every difference explained. Financial reconciliation is therefore designed with finance before Mock 1, not assembled on go-live weekend.
The dimensions
| Dimension | Why it matters | Contoso example |
|---|---|---|
| Company code | Legal entity; balance sheets are per company code | 1910 Alternadores del Norte; 1710 Contoso Motor Co. for intercompany checks |
| Ledger | Each accounting principle has its own balances | Leading ledger 0L (US GAAP) and non-leading ledger 2L (IFRS) |
| Currency | Amounts must match in document currency and in company code currency | MXN company code currency; some customer and supplier items in USD document currency |
| G/L account | Trial balance lines are what auditors tie out | Every balance sheet account, including reconciliation and clearing accounts |
| Subledger key | Customer, supplier, asset or product behind a reconciliation account | Flotillas Monterrey; Lakeside Components; Alternadores alternator model ADN-200 |
| Profit center or segment | Where management reporting depends on them | Balances by profit center, if used for segment reporting |
Reconciling the pieces
Financial data arrives through several objects, and each must reconcile on its own before the total can. Open receivables and payables reconcile per customer and supplier and roll up to their reconciliation accounts. Inventory reconciles quantity and value per product, plant and storage location and rolls up to the stock accounts. Fixed assets reconcile acquisition values and accumulated depreciation per asset and asset class, per ledger. G/L balances then fill the remaining accounts. Finally the migration clearing accounts, which absorb the offsetting side of every load, must net to zero.
- SubledgersOpen AR per customer, open AP per supplier, stock per product and location, assets per asset
- Roll-upSubledger totals equal the related reconciliation and stock accounts
- G/L balancesRemaining accounts loaded per company code, ledger and currency
- Trial balanceTarget trial balance equals the source at the key date, account by account
- Clearing accountsMigration clearing accounts net to zero in every company code and ledger
| Check | Source (legacy ERP) | Target (SAP S/4HANA) | Difference |
|---|---|---|---|
| Open AR, company code 1910, MXN | MXN 48,615,320.40 | MXN 48,615,320.40 | 0 |
| Stock value ADN-200, plant 1910 | 2,300 pc / MXN 6,210,000.00 | 2,300 pc / MXN 6,210,000.00 | 0 |
| Trial balance 1910, ledger 0L, all accounts | Balanced, account by account | Balanced, account by account | 0 on every account |
| Trial balance 1910, ledger 2L | IFRS balances per account | IFRS balances per account | 0 on every account |
| Migration clearing accounts, 1910 | Not applicable | Net zero per ledger | 0 |
An extract from the Wave 2 financial reconciliation log for Mock 3.
Ledgers and currencies
Where a company runs parallel accounting, balances can differ between ledgers by design, for example asset values under US GAAP in 0L and under IFRS in 2L. Reconcile each ledger separately against its own source figures; a match in 0L says nothing about 2L. Reconcile amounts in both document currency and company code currency. Foreign currency open items need particular care: decide with finance which exchange rate the migrated items carry and how revaluation will treat them at the first period end, and check rounding at line item level, where small differences hide.
Intercompany
Before the acquisition, Alternadores already sold rotors and alternators to Contoso Motor Co. Those open items now become intercompany: open receivables loaded into 1910 from the legacy ERP must match the open payables to Alternadores that Contoso already holds in company code 1710, item by item where possible and at the agreed exchange rate. Reconcile 1910 to its source, and then reconcile 1910 and 1710 to each other. An intercompany mismatch that was not there before the load is a migration defect, even if both company codes tie to their own sources.
- Does the trial balance match account by account in every company code and ledger?No → locate the account; reconcile its subledger or G/L object · Yes → next question
- Do the migration clearing accounts net to zero?No → an object is missing, duplicated or double counted · Yes → next question
- Do subledgers match per customer, supplier, product and asset?No → swapped or misassigned values: fix before sign-off · Yes → next question
- Do intercompany positions between 1910 and 1710 match each other?No → raise a migration defect · Yes → financial reconciliation is ready for Dan's review
What would you do?
In Wave 2 Mock 3, the trial balance of company code 1910 matches account by account in ledger 0L, and the migration clearing account nets to zero. In ledger 2L, the clearing account shows a balance of MXN 846,300. What is the most likely explanation and next step?
- Reconcile financial data by company code, ledger, currency, G/L account and subledger key.
- Build up from subledgers to reconciliation accounts, G/L balances, the trial balance and clearing accounts at zero.
- Reconcile each ledger separately; check document and company code currency and rounding.
- Reconcile intercompany positions between company codes after migration.
Check your understanding · not graded
Lesson check
1. Why reconcile ledger 2L separately when ledger 0L matches?
2. What must the migration clearing accounts show when all financial objects are loaded?
3. Why reconcile open receivables per customer as well as in total?
4. After the Wave 2 load, 1910's intercompany receivables do not match 1710's payables to Alternadores, although 1910 ties to its legacy source. What is this?