Top finding for the Finance Controller. SKUs whose unit margin has materially eroded in the last quarter.
At a glance
Alert table of SKUs whose Gross Margin % has dropped > 20% over the last 90 days vs the prior 90 days, ranked by absolute revenue at risk. The Controller’s worklist for cost-control conversations.
| What it counts | For each Item with revenue in both windows: (Margin% this 90D) minus (Margin% prior 90D). Items where the drop exceeds 20% (relative) AND the revenue is > $5K appear in the alert table. |
| Revenue minimum | $5K USD equivalent over the window, to suppress noise from low-volume SKUs. Tunable. |
| VAT / tax treatment | Net of VAT on both sides. |
| Currency | Multi-Company: each Item’s revenue and COGS translated to Reporting Currency for consistent comparison. |
| FIFO turnover note | A SKU sometimes shows “margin erosion” purely from FIFO layer turnover (consuming a higher-cost layer this period). The card flags this if Avg Unit Cost has risen > 5% but Selling Price unchanged; the recommended action is then “verify cost layer”, not “raise prices”. |
| Sales Credit Memo handling | Excluded. Returns post negative revenue + reverse COGS; the per-SKU margin% remains stable across a return. |
| Time window | 90D vsP (90-day window vs prior 90-day window) |
| Alert trigger | any SKU dropped >20% margin (relative drop, e.g. 30% margin to 24% margin = 20% relative drop) |
| Sentiment key | margin_erosion |
| 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. 90-day window 14 Jan 26 to 13 Apr 26 vs prior 90D.| SKU | Description | Revenue (USD) | Margin% prior | Margin% this | Relative drop | Suspected cause |
|---|---|---|---|---|---|---|
| ELEC-LAPTOP-A14 | Laptop A14, 14” | $1,840,000 | 22.8% | 16.4% | -28% | Vendor cost rose, prices unchanged |
| ELEC-MONITOR-27UHD | Monitor 27” UHD | $620,000 | 31.4% | 22.6% | -28% | FIFO layer turnover (Q4 cost spike) |
| ELEC-DOCK-USB4 | USB4 Dock | $480,000 | 38.2% | 24.8% | -35% | Markdown campaign for clearance |
| ELEC-KEYBRD-MX | MX Keyboard | $284,000 | 41.6% | 30.4% | -27% | Channel mix: shifted to marketplace |
| ELEC-MOUSE-LOG | Logitech mouse | $182,000 | 28.4% | 19.8% | -30% | Vendor minimum-advertised-price change |
| Top 5 total | $3,406,000 |
- **Laptop A14 (1.84M of revenue = $118K of margin loss in the 90-day window vs prior. The Controller’s first conversation is with the vendor.
- Monitor 27UHD is FIFO turnover, not policy. The card flags this with a “verify cost layer” suggestion. Before the merchant raises prices, the procurement team should confirm whether the new layer is the new normal or a one-time spike.
- USB4 Dock is intentional clearance. The merchandising team ran a 30%-off promotion to clear ageing stock. The margin drop is by design; the card surfaces it so it does not get conflated with the unintended drops.
- Keyboard channel mix shift. The merchant added a Walmart Marketplace channel which has higher fees + lower selling prices. Margin% dropped on the SKU even though the unit cost is unchanged. Action: route the SKU to higher-margin channels, or surcharge the Walmart price.
- The Vendor Minimum-Advertised-Price (MAP) change on Logitech mouse is a category-wide signal. All Logitech SKUs likely showing similar drops. Pair with Margin by SKU for the brand-level view.
Sibling cards merchants should reference together
| Card | Why pair it with Margin Erosion Alerts |
|---|---|
| Gross Margin % | The headline; this card is the SKU-level cause. |
| Margin by SKU | Per-SKU detail; full list, not just alert candidates. |
| Landed Cost Variance | Procurement-side root cause when COGS spikes. |
| Average Landed Cost per Unit | Tracks cost-side trajectory by SKU. |
| Margin Compression Alert | Headline-level trigger when many SKUs erode at once. |
| Total COGS | Aggregate COGS movement. |
| Top SKUs by Inventory Value | Concentration check. |
Reconciling against the vendor’s own dashboard
Where to look in Business Central:Item Card > Statistics > Avg. Sales Profit % (per-Item lifetime, not period vs period) Reports > Sales > Sales Statistics by Item (per-Item period revenue + profit) Power BI > Sales Insights > Margin by Product tileBC does not have a native period-vs-period margin-erosion view. Most merchants build a saved Excel pivot from Sales Statistics. The card automates this every 15 minutes. Why our list may legitimately differ from BC’s reports:
| Reason | Direction | Why |
|---|---|---|
| Window selection | Either | Card uses 90D vs prior 90D; BC defaults to fiscal-period vs prior fiscal-period. Different window lengths produce different signals. |
| Adjust Cost batch timing | Small | Pre-batch margins are approximated; post-batch exact. |
| Sales Credit Memo handling | Card excludes returns in margin% | Some merchants include them; configurable. |
| Multi-Company aggregation | Card sees more SKUs | Per-Company SKU views miss SKUs that span Companies. |
Known limitations / merchant FAQs
Why 20% relative drop as the threshold? A 20% relative drop on a 30% margin = a 6 percentage-point drop in absolute margin. That is material for any business. Merchants in low-margin categories (electronics, industrial wholesale) often tighten to 10%; high-margin (apparel, specialty) loosen to 30%. Why is the same SKU appearing on this card for 3 months in a row? Because the prior-period baseline is rolling. If margin permanently shifts to a lower level, the card stops alerting once the drop is no longer relative-to-prior. To check, look at the trendline: a one-time drop shows as a step; a continuing slide shows as a curve. Does FIFO turnover trigger false positives? Yes by design, the card flags them with a “verify cost layer” suggestion in the row. The recommended action is then to confirm whether the new layer reflects current vendor pricing or a transient batch. What about new SKU launches? Excluded if the SKU has < 90 days of revenue history (no prior baseline to compare against). Multi-Company tenants: same SKU sold in two Companies, which margin counts? Per Company, separately. The card listsItem No. + Company Name so the same SKU can appear twice if both Companies’ margin eroded. This avoids masking Company-specific cost or pricing issues.
How does this interact with the Margin Compression Alert?
Margin Compression Alert fires at the headline level (the consolidated Gross Margin % drops > 2pp vsP). This card is the SKU-level worklist. The Compression Alert tells you “something is wrong”; this card tells you “here are the 5 SKUs causing it”.
Does the card account for Item Charges (freight, customs)?
Yes. Item Charges allocated to Items roll into Unit Cost, which drives COGS, which drives margin. A spike in freight charges shows up as margin erosion on the affected SKUs.
Power BI’s Sales Insights: same alert?
Power BI’s Margin by Product tile shows the snapshot but does not auto-alert on relative drops. The merchant has to manually notice. This card surfaces the worst movers daily.