Skip to main content
Metrics type: Key MetricsCategory: Ecommerce Platform
Headline GL-booked revenue from Business Central. The single number the Finance Controller checks at 9am Monday.

At a glance

Revenue formally booked into the Business Central General Ledger across the period. The arithmetic sum of revenue-account G/L Entry lines (typically accounts 4000 to 4999 in the standard BC chart of accounts) posted from Sales Invoices, Sales Cash Receipts, Sales Credit Memos, and recurring revenue journals against the selected Companies.

Calculation

Calculated automatically from your Microsoft Dynamics 365 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 UK omnichannel apparel brand running Business Central in the Microsoft 365 commercial cloud, with three Companies in a single BC tenant: UK Apparel Ltd (parent, GBP), US Apparel Inc (USD), and EU DTC BV (EUR). The 30-day window covers 14 Mar 26 to 12 Apr 26. Reporting currency is GBP. Annual revenue is in the £55M to £65M range, putting the merchant squarely in BC’s mid-market sweet spot. Five things to notice:
  1. Intercompany elimination removed £148,000. UK Apparel Ltd shipped wholesale stock to US Apparel Inc and posted an inter-company Sales Invoice. This is real revenue inside the UK Company’s books but it nets to zero at the consolidated level (the US sub records it as inventory cost via the matching Purchase Invoice). The card respects the elimination convention as long as the user is viewing the Consolidation Company; if they pivot to UK Apparel Ltd alone, the £148,000 reappears.
  2. The GBP equivalent uses the period-average FX rate, not the spot rate at posting. BC’s Currency Exchange Rate table holds daily rates by default, but Adjust Exchange Rates can recompute consolidated reporting at period-average. If the merchant flips between the two views, the card moves slightly even though the underlying transactions did not.
  3. Commerce platform Total Revenue for the same window was £5,420,000 across Shopify Plus + a B2B Adobe Commerce instance. The £531,200 gap is the killer finding. A breakdown lives on the Revenue Gap vs Commerce card and the cross-connector card, but at a high level it splits as: £272,000 Sales Orders posted but not yet Invoiced (still in Released state), £128,000 cancellations and Credit Memos that hit GL but not the commerce headline, £92,000 unmapped marketplace orders not yet syncing into BC, £39,200 timing on the period boundary.
  4. Last period was £5,110,000. This period is down 4.3% vsP, well below the drop >15% vsP alert threshold. The Nerve Centre stays quiet, but the trendline still appears on the card.
  5. Power BI parity check. The merchant’s Finance Director runs the standard BC Power BI dashboard (“Finance Performance”) on the UK Apparel Ltd Company alone and sees £2,638,400 vs the £2,640,000 in the table. The £1,600 difference is rounding on the Adjust Exchange Rates batch. When she runs Power BI for US Apparel Inc and tries to add the two, she has to manually FX-translate. This card does the consolidation natively, which is the structural advantage Vortex IQ delivers over Power BI on a multi-Company BC tenant.

Sibling cards merchants should reference together

Revenue Booked into GL is the canonical revenue figure but it lags real economic activity. Pair it with these to triangulate.

Reconciling against the vendor’s own dashboard

Where to look in Business Central: The closest native equivalents in the Business Central UI are:
Reports > Finance > Income Statement (period view, run via the Role Centre tile) Chart of Accounts > drill into Revenue accounts (transaction view via the Account Card) Sales > Sales Order List (forward-looking, NOT this card) Power BI > Finance Performance content pack > Revenue tile (one Company at a time)
The Income Statement summary line “Total Revenue” should match this card to within a couple of pounds when you select the same period and the same Company. For an audit-grade match, run the G/L Register (Posted Documents > G/L Register), filter to revenue accounts (4000 to 4999) and posted entries, then sum the Credit Amount column. Or pull the same data via OData: https://api.businesscentral.dynamics.com/v2.0/{tenantId}/{environment}/api/v2.0/companies({companyId})/generalLedgerEntries?$filter=accountNumber ge '4000' and accountNumber le '4999'. Common mistakes when comparing against BC’s own reports:
  • Sales Order List sums Sales Orders, not booked revenue. SOs in Open or Released state contribute to that report but are not yet GL revenue. Expect Sales Order List total > this card.
  • Sales Statistics (Sales > Sales Statistics) is order-level and includes Quotes (Document Type = Quote) if the filter isn’t tightened. This card excludes Quotes by definition.
  • Customer Ledger Entries is AR-based, not revenue-based. It excludes Cash Sales and shows outstanding balances, not booked revenue.
Why our number may legitimately differ from BC’s reports: Cross-connector reconciliation, the killer finding: The detailed gap-breakdown lives on the revenue-gap cross-connector card. The single most-asked finding from any mid-market commerce Controller using Vortex IQ is “where did the £531K go?”, and that card answers it line by line.

Known limitations / merchant FAQs

Why is the GL booked figure lower than my Shopify or BigCommerce headline? Three structural reasons, in order of typical contribution:
  1. Released-but-not-Invoiced. Commerce orders post to Sales Orders in BC, then move through Open > Released > Posted (Invoice) before becoming a Posted Sales Invoice that hits the GL. The lag is usually 1 to 7 days for DTC and 10 to 30 days for B2B Net-30 terms. Anything in Open or Released state is commerce revenue but not yet GL revenue.
  2. Sales Credit Memos. A return on a £1,000 order subtracts from this card but the commerce platform usually shows it on the original gross headline. Over a year a 10% return rate becomes a 10% structural gap.
  3. Cancellations. A cancelled order may still show in the commerce platform’s lifetime totals (especially BigCommerce) but is voided in BC, so the GL net is zero.
The full reconciliation lives on the Revenue Gap vs Commerce card. Why is BC “the source of truth” for revenue if my commerce platform shows higher numbers? BC is where the audit happens, where tax authorities pull, and where the bank lender looks. The commerce platform is where the customer paid, but customer-paid is not the same as recognised revenue under accounting standards (ASC 606 in the US, IFRS 15 in the UK and EU). For boardroom and bank conversations, this card is what counts. For acquisition and conversion analysis, commerce headlines are what counts. Both are right, they just answer different questions. Does this card include Cash Receipts (POS or DTC paid at checkout)? Yes if the Cash Receipt posts to a revenue account (the typical setup for retail POS via the Cash Receipt Journal). If the merchant uses BC’s standard Sales Cash Receipt template, revenue posts to the same 4000 series accounts as Sales Invoices and the card captures it. If POS uses a third-party app that batch-posts to a clearing account, the merchant needs to confirm the field map. BC vs NetSuite vs SAP: how does this card compare? The arithmetic is identical: sum of revenue-account postings. The differences live in the surrounding ecosystem:
  • BC: Microsoft 365-native UX, Power BI dashboards out of the box, AL Extensions for customisation, twice-yearly major release cadence, native Common Data Service sharing with Dynamics 365 Sales (CRM). Mid-market sweet spot at 30Mto30M to 150M revenue.
  • NetSuite: SuiteCloud platform with quarterly releases, deeper consolidation tooling, broader vertical templates, larger pre-built marketplace. Common at 50Mto50M to 500M revenue.
  • SAP S/4HANA: enterprise-tier with deepest manufacturing-cost, treasury, and tax-jurisdiction tooling. Implementation cost typically 5 to 10x BC. Common at $250M+.
For mid-market commerce + light manufacturing, BC’s Microsoft-stack integration (Office 365 UX, Teams, Power BI) is its biggest differentiator. Vortex IQ runs identically across all three. What’s the OData v2.0 freshness on this card? Vortex IQ pulls generalLedgerEntries from the BC OData v2.0 API with a 15-minute cache. Posted entries are visible to the API immediately on posting (no batch lag). The card is therefore at most 15 minutes stale, which is materially fresher than Power BI’s default refresh schedule (once or twice a day). Multi-Company aggregation, how does it work? BC’s multi-Company model puts each Company in its own database table set within a single tenant. The OData API exposes /companies({companyId})/... per Company; Vortex IQ enumerates the connected Companies and aggregates server-side, applying FX translation to the configured Reporting Currency. Power BI’s standard content pack handles one Company at a time, which is why most multi-Company BC merchants either build their own consolidation in Power BI Premium or live with single-Company views. This card removes that limitation. AL Extensions: do customisations affect the number? Only if the extension changes the GL posting logic. A typical AL Extension adds fields, validations, or workflow steps without modifying the chart of accounts. If your extension routes revenue to non-standard accounts (outside the 4000 to 4999 range), the field map needs the custom account list. The Vortex IQ onboarding captures this. Common Data Service / Dataverse, does the card use it? No. CDS / Dataverse is the integration layer between Dynamics 365 Sales (CRM) and BC. The revenue numbers live in BC’s GL, which Vortex IQ reads directly. CDS is relevant for the Customer master if the merchant uses Dynamics 365 Sales as the master and BC as the sub-ledger; the card pulls revenue regardless. Single-Company BC accounts: does the card behave differently? Same logic, simpler scope. Single-Company tenants skip the FX translation and consolidation steps. The Reporting Currency is the Local Currency. Most fields are identical. B2B credit-hold mechanics: does this card show held revenue? A Sales Order on credit hold (Credit Limit Exceeded warning, blocked from posting) is not yet a posted Invoice, so it is not in this card. Once Finance releases the hold and the SO posts as an Invoice, it lands here. The lag is the killer working-capital signal; pair this card with Sales Orders Blocked to see what is stuck.

Tracked live in Vortex IQ Nerve Centre

Revenue Booked into GL is one of hundreds of KPI pulses Vortex IQ tracks across Microsoft Dynamics 365 and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.