The killer reconciliation finding for mid-market ecom ops: dollar value of orders that never made it to S/4HANA Cloud GL plus the reason.
At a glance
The dollar value of commerce-platform revenue that has not yet hit the S/4HANA Cloud General Ledger, broken down by reason. Calculated as commerce_total_revenue minus sap_revenue_booked_gl for the same window, with reason codes attached to each missing dollar. The single most-asked finding from any Finance Manager or SAP Functional Analyst running an enterprise commerce business on S/4HANA Cloud.
Calculation
Calculated automatically from your SAP data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A US enterprise wholesale apparel distributor (annual revenue ~$280M) running SAP S/4HANA Cloud Public Edition. Connected commerce platforms: SAP Commerce Cloud B2B (the legacy Hybris stack, branded D2C portal), Shopify Plus DTC, BigCommerce B2B with Net-30 terms, Adobe Commerce wholesale portal. Three Company Codes (US, CA, MX). The 30-day window covers 04 Apr 26 to 03 May 26.
Reason breakdown the card surfaces:
Five things to notice:
- The biggest leak is Pending Billing ($1.26M). This is not lost revenue, it is stuck working capital. Goods have shipped, the customer is on the hook, but no Billing Document means no AR record, no DSO clock, and no GL booking. The card lets the Finance Manager drill into the Sales Document list (deep-link into Manage Sales Documents Fiori app) and chase Operations to run the next billing-due-list (transaction VF04). If billing-due-list runs weekly and the Net-30 terms start at billing date, every day of delay is a day of pure cash-conversion-cycle drag.
- Unmapped Marketplace ($214K) is real revenue at risk. If the customer mapping is wrong on Adobe Commerce (commerce-platform
customer_idnot joined to a SAP Business Partner record), those orders may never sync. The Finance Manager pings the SAP Functional Analyst to fix the Business Partner master data; otherwise next month’s gap is even bigger and the integration error log keeps growing. - Credit Memo Refunds ($480K) is policy, not error. This is the structural gap between gross commerce headlines and net GL booking. It will always exist; what matters is whether the rate is constant or rising. Rising = quality / fulfilment / pricing problem. Constant = baseline noise.
- EBRR Deferred Revenue ($42K) is the SAP-specific bucket that NetSuite users will not recognise. S/4HANA Cloud’s Event-Based Revenue Recognition (or the heavier Revenue Accounting and Reporting / RAR module) automatically defers contract revenue at billing time. If the merchant’s commerce platform sells multi-period maintenance, subscriptions, or extended warranties, this bucket is non-zero by design. The card surfaces it as a separate category so Finance does not chase it as a defect.
- **Alert fires at >16K Unknown, the card is just over threshold and the SAP Functional Analyst’s weekly reconciliation review starts here.
Sibling cards merchants should reference together
This card is the trigger; the action lives on its companions.Reconciling against the vendor’s own dashboard
Where to look in S/4HANA Cloud: There is no single native S/4HANA Cloud report for this metric, that is precisely why Vortex IQ surfaces it. The closest manual approach inside SAP is:Run the Manage Sales Documents Fiori app (A SAP Functional Analyst can build this view and a parallel CDS query in 15 to 30 minutes. Most do not, because the cross-platform comparison requires pulling commerce data manually, and the moment you do that you have lost reproducibility. Vortex IQ runs this every 15 minutes against the live OData endpoints and the commerce-platform APIs in parallel. Direct deep-links:F1873) filtered to statusAwaiting Goods Issue OR Awaiting Billing, sumNet Value. Then compare manually to the commerce platform’s last-30-day total revenue export.
https://my{tenant}.s4hana.cloud.sap/sap/bc/ui2/flp#SalesDocument-manage and the SAP Analytics Cloud “Sales Order Cockpit” content-pack story.
Adjacent SAP reports that look related but are not:
- Sales Document Register (transaction VA05 / Fiori app
Sales Order Fulfilment Issues): shows all open Sales Documents but without commerce-side comparison. - Customer Aging (transaction FBL5N): AR-based, looks at unpaid Billing Documents, not pre-Billing-Document gap.
- SAP Analytics Cloud Sales Performance story: smooths the gap into a monthly trendline; loses the per-order traceability and runs at 24-hour SAC refresh cadence.
Cross-connector reconciliation, the killer finding:
This card IS the cross-connector reconciliation; it has no counterpart on the commerce platforms themselves and no native counterpart inside SAP. The closest sibling on the commerce side is the Pending vs Captured Revenue card on Stripe (which catches Stripe-routed payment captures awaiting settlement), but that compares Stripe-internal state, not commerce-to-ERP.
The full audit trail with originating order IDs, SAP Sales Document numbers (or absent), and integration error log references lives on Revenue Gap, Detailed Breakdown. That is the worklist; this card is the headline.
Known limitations / merchant FAQs
Should this gap ever be zero? No, and you should be suspicious if it is. A small structural gap (Pending Billing + Credit Memos + EBRR + period-boundary timing) is healthy. Zero gap means either the connector is not pulling new commerce orders, or someone is force-closing the period before reconciliation. Aim for a stable gap that scales with revenue, with the Unknown bucket near zero. How big should the gap be vs total revenue? A typical enterprise commerce business on S/4HANA Cloud runs at 8 to 18% gross commerce vs net GL revenue gap inside a 30-day window:- Pending Billing: 4 to 12% (higher for B2B Net-30, lower for DTC; the billing-due-list cadence drives this).
- Credit Memo Refunds: 3 to 8% (varies by category, apparel skews high; industrial low).
- EBRR Deferred Revenue: 0 to 5% (only if you sell multi-period contracts).
- Voided / Rejected: 1 to 3%.
- Unknown: ideally < 0.3% of commerce gross.
EBRR Deferred Revenue in the breakdown, which is policy-correct, not a defect. Pre-EBRR / pre-RAR setups will show this bucket at zero because revenue posts in full at billing.
Multi-currency Group Reporting tenants: does the FX Translation bucket overstate?
The bucket isolates the residual after rate type M (period average) is applied via the SAP TCURR rate table. If your Company Codes transact in 5+ currencies, expect the FX bucket to be 0.4 to 1.5% of commerce gross. Anything larger usually means the field map’s FX rate type is misconfigured (e.g. using rate type B buying-rate when Group Reporting expects M).
What does the alert look like in practice?
At >$10K Unknown, the Nerve Centre fires a sentiment alert and Ask Viq surfaces the question “What is the £14K reconciliation drift this week?” with a deep-link to the breakdown card and to the Manage Sales Documents Fiori app. The Finance Manager typically resolves it in 20 to 45 minutes by mapping a missing Business Partner, releasing a credit hold via FSCM-CR, or escalating a stuck delivery to the SAP Functional Analyst.
Group Reporting consolidation vs single-Company-Code, does the card behave differently?
Same logic, simpler scope. Single-Company-Code skips the FX Translation bucket and the Group Reporting elimination logic. Most fields are identical.
Sales Document vs Billing Document vs Cash App, where does each fit?
- Commerce order -> SAP Sales Document: fast (minutes via OData). If this fails, gap appears as Unmapped Marketplace.
- Sales Document -> Delivery -> Billing Document: slow (hours to days, billing-due-list cadence). If this is stuck, gap appears as Pending Billing.
- Billing Document -> Cash Application (FB05 / F-30): slow (days to weeks). NOT in this card; this gap is captured by DSO.
- Refund -> Credit Memo (G2): variable, depends on Returns process configuration. Captured as Credit Memo Refunds bucket.