> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Gross Margin Percentage, Microsoft Dynamics 365

> Revenue minus COGS over revenue. The single best margin-health number for the executive view. How to read it, why it matters, and how to act on it.

**Metrics type:** [Key Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> Revenue minus COGS over revenue. The single best margin-health number for the executive view.

## At a glance

> `(Revenue minus COGS) divided by Revenue`. The single best margin-health number for the executive view. Computed off posted Sales Invoices and matched COGS posting from Item Charges + Item Application Entries.

|                                  |                                                                                                                                                                                                                                                                     |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**               | `(SUM(Revenue G/L Entry) minus SUM(COGS G/L Entry)) / SUM(Revenue G/L Entry)` for the period. Revenue: posting to G/L accounts 4000 to 4999 (standard BC chart). COGS: posting to 5000 to 5099.                                                                     |
| **VAT / tax treatment**          | Net of VAT on both sides.                                                                                                                                                                                                                                           |
| **Shipping**                     | Included on both sides if shipping posts to revenue + shipping cost posts to COGS. Many BC tenants book shipping cost to a separate Operating Expense, in which case shipping is revenue-side only and inflates margin. The field map can normalise this.           |
| **Discounts**                    | Deducted from revenue at line level.                                                                                                                                                                                                                                |
| **Sales Credit Memos**           | Deducted from revenue; matching reverse COGS posted on the Item Application Entry.                                                                                                                                                                                  |
| **Currency**                     | Multi-Company: each Company's revenue + COGS translated to Reporting Currency.                                                                                                                                                                                      |
| **FIFO/Average impact**          | The COGS posted on a Sales Invoice depends on the Item's Costing Method. FIFO depletes oldest layers; Average uses rolling Unit Cost. Margin can swing 1 to 3 percentage points period-over-period purely from FIFO layer turnover even with stable selling prices. |
| **Adjust Cost batch dependency** | BC's Adjust Cost - Item Entries batch finalises COGS postings. Pre-batch the COGS may be approximated; post-batch it is exact. Card uses post-batch values.                                                                                                         |
| **Time window**                  | `30D vsP` (rolling)                                                                                                                                                                                                                                                 |
| **Alert trigger**                | `drop >2pp vsP` (a 2-percentage-point drop month-over-month is the structural alarm)                                                                                                                                                                                |
| **Sentiment key**                | `margin`                                                                                                                                                                                                                                                            |
| **Roles**                        | owner, finance                                                                                                                                                                                                                                                      |

## 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 US wholesale electronics distributor on BC, 30-day window 14 Mar 26 to 12 Apr 26.

| Metric                                        | This period (USD) | Prior 30D   | vsP        |
| --------------------------------------------- | ----------------- | ----------- | ---------- |
| Revenue (Posted Sales Invoices, GL 4000-4999) | \$7,420,000       | \$7,180,000 | +3.3%      |
| COGS (matched, GL 5000-5099)                  | \$5,240,000       | \$4,940,000 | +6.1%      |
| Gross Margin \$                               | \$2,180,000       | \$2,240,000 | -2.7%      |
| **Gross Margin % (this card)**                | **29.4%**         | **31.2%**   | **-1.8pp** |

Five things to notice:

1. **Margin compressed 1.8pp despite revenue growth.** COGS rose 6.1% on revenue that rose only 3.3%. Classic margin erosion: cost-side moved faster than price-side. Just below the 2pp alert threshold.
2. **Two likely drivers:** (a) FIFO layer turnover, the merchant is now selling out of higher-cost inventory layers received in Q4 25 when supplier prices spiked; (b) channel mix shift towards lower-margin marketplace sales. The [Margin by SKU](/nerve-centre/kpi-cards/microsoft-dynamics/margin-by-sku) breakdown identifies which SKUs concentrate the compression.
3. **The Adjust Cost batch posted on 31 Mar 26.** Pre-batch margin showed 30.1%; post-batch (correct) was 29.4%. The card uses post-batch.
4. **Power BI's Finance Performance pack shows 29.4% on the Gross Margin tile** for the same Company, matching this card. Multi-Company Power BI requires custom DAX; this card consolidates natively.
5. **Action:** investigate the FIFO layer hypothesis via [Margin by SKU](/nerve-centre/kpi-cards/microsoft-dynamics/margin-by-sku) drill-down. If a handful of SKUs are responsible, raise prices or substitute lower-cost variants. If margin compression is broad, escalate to procurement for vendor renegotiation.

## Sibling cards merchants should reference together

| Card                                                                                                    | Why pair it with Gross Margin %                  |
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| [Margin Erosion Alerts](/nerve-centre/kpi-cards/microsoft-dynamics/margin-erosion-alerts)               | The actionable subset: SKUs driving margin down. |
| [Total COGS](/nerve-centre/kpi-cards/microsoft-dynamics/msd-cogs-total)                                 | The numerator's other half.                      |
| [Margin by SKU](/nerve-centre/kpi-cards/microsoft-dynamics/margin-by-sku)                               | Per-SKU detail; the actionable view.             |
| [Landed Cost Variance](/nerve-centre/kpi-cards/microsoft-dynamics/landed-cost-variance-vs-standard)     | Procurement-side root cause when COGS is rising. |
| [Revenue Booked into GL](/nerve-centre/kpi-cards/microsoft-dynamics/revenue-booked-into-gl)             | The revenue side.                                |
| [Average Landed Cost per Unit](/nerve-centre/kpi-cards/microsoft-dynamics/average-landed-cost-per-unit) | Tracks the cost-side trajectory.                 |
| [Margin Compression Alert](/nerve-centre/kpi-cards/microsoft-dynamics/margin-compression)               | Fires when this card breaches threshold.         |

## Reconciling against the vendor's own dashboard

**Where to look in Business Central:**

> **Reports > Finance > Income Statement** (Revenue minus Cost of Goods Sold = Gross Profit)
> **Power BI > Finance Performance content pack > Gross Margin tile**
> **Reports > Sales > Sales Statistics** (per-customer-margin variant)
> **Item Card > Statistics > Avg. Sales Profit %** (per-Item lifetime margin)

The Income Statement Gross Profit % matches this card to within rounding. Power BI's Gross Margin tile uses identical DAX.

**Why our number may legitimately differ from BC's reports:**

| Reason                        | Direction                | Why                                                                                                                                                             |
| ----------------------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Adjust Cost batch timing**  | Small                    | Pre-batch the COGS is approximated; post-batch exact. Card uses post-batch values.                                                                              |
| **Shipping classification**   | Either                   | If shipping is booked to Operating Expenses rather than COGS, BC's Income Statement shows higher margin than this card (which can be normalised via field map). |
| **Sales Credit Memos**        | None                     | Both sides handle them identically.                                                                                                                             |
| **Multi-Company aggregation** | Card materially smoother | Card consolidates; per-Company BC views can swing wildly on small Companies.                                                                                    |

**Cross-connector reconciliation:**

| Card                                                                         | Direction      | Notes                                                       |
| ---------------------------------------------------------------------------- | -------------- | ----------------------------------------------------------- |
| [shopify.gross\_margin\_pct](/nerve-centre/shopify/gross_margin_pct)         | Shopify subset | Shopify-only margin, useful when DTC is a discrete channel. |
| [bigcommerce.gross\_margin\_pct](/nerve-centre/bigcommerce/gross_margin_pct) | BC subset      | Same.                                                       |

## Known limitations / merchant FAQs

**What is a healthy Gross Margin %?**
Apparel: 50 to 65%. Electronics distribution: 18 to 28%. Specialty consumer goods: 35 to 50%. Industrial wholesale: 12 to 22%. Margin much above category benchmark suggests pricing power; much below suggests cost pressure or competition.

**Why does my margin swing 2 to 4 percentage points month-over-month even with stable prices?**
FIFO Costing Method causes layer-turnover swings. When you sell out of an old cheap layer and start consuming a new expensive layer, COGS jumps even though selling prices did not. Average Costing smooths this.

**Does the card account for inventory write-downs?**
Inventory write-downs post to a P\&L account but typically not the standard COGS range (5000-5099). They go to a write-down account (often 5500). The card excludes these from COGS so the margin reflects ongoing trade, not balance-sheet adjustments.

**Multi-Company tenants: how is the consolidated margin computed?**
Each Company's Revenue and COGS are translated to Reporting Currency, then summed before the ratio is taken. This avoids the "Simpson's paradox" where individual Companies show one trend and the consolidated another.

**What about freight-in and customs duties?**
Captured via Item Charges in BC. If the Item Charge is allocated to the Item (typical for landed cost), it sits in COGS and the card captures it. If booked separately to Freight or Duty G/L accounts, it is excluded; the field map can normalise.

**Does the card include Manufacturing variances?**
Standard cost variances (Material, Capacity, Subcontractor) post to dedicated G/L accounts; some merchants treat these as COGS, some as Operating Expense. The card uses the strict 5000-5099 range by default; configure if your accounting policy differs.

**How does this compare to NetSuite's gross margin?**
Same formula. NetSuite uses Item Costing (Average / Standard / FIFO / LIFO) like BC. The result for a multi-ERP merchant should be identical when scoped consistently.

**Power BI Finance Performance pack: same number?**
Yes for one Company. Multi-Company Power BI requires custom DAX or Premium-tier roll-up; this card consolidates natively.

***

### Tracked live in Vortex IQ Nerve Centre

*Gross Margin Percentage* 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](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
