> ## 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.

# Inventory Aging, Microsoft Dynamics 365

> Inventory value bucketed by days-on-hand. Aged stock is cash trapped on the floor. 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)

> Inventory value bucketed by days-on-hand. Aged stock is cash trapped on the floor.

## At a glance

> On-hand inventory bucketed by Item Ledger Entry receipt date. Bars: 0-30D, 31-60D, 61-90D, 91-180D, 181-365D, 365D+. Aged stock is cash trapped on the floor.

|                                |                                                                                                                                                                                                      |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**             | Aging buckets of on-hand inventory by `Posting Date` of the originating Item Ledger Entry (the date stock was received). Each bucket carries unit count and dollar value at landed cost.             |
| **Aging start date**           | `Item Ledger Entry.Posting Date` of the Receipt entry. For FIFO Items, the original receipt date of the layer still on hand. For Average-cost Items, weighted average date of contributing receipts. |
| **Stock excluded**             | In-Transit (configurable), Quarantined, Reserved (configurable).                                                                                                                                     |
| **Currency**                   | Multi-Company: each Company's bucket value translated to Reporting Currency at current rate.                                                                                                         |
| **Aging cohort vs FIFO layer** | The card uses FIFO layer date for FIFO-costed Items. Average-cost Items use weighted average across contributing receipts; this is an approximation but close to economic reality.                   |
| **Power BI complementarity**   | Power BI's Inventory Performance pack does not include an aging buckets tile by default. This card fills that gap.                                                                                   |
| **Time window**                | `RT` (real-time snapshot)                                                                                                                                                                            |
| **Alert trigger**              | `>15% in 180+ bucket` (signal: ageing inventory crossing the standard write-down threshold)                                                                                                          |
| **Sentiment key**              | `inv_aging`                                                                                                                                                                                          |
| **Roles**                      | owner, finance, operations                                                                                                                                                                           |

## 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 on Business Central, single Company GBP. Snapshot 14 Apr 26.

| Aging bucket | Inventory value (GBP) | % of total | Action                        |
| ------------ | --------------------- | ---------- | ----------------------------- |
| 0-30 days    | £842,000              | 32%        | Healthy, fresh stock          |
| 31-60 days   | £620,000              | 24%        | Healthy                       |
| 61-90 days   | £470,000              | 18%        | Watch, season-end approaching |
| 91-180 days  | £390,000              | 15%        | Markdown candidate            |
| 181-365 days | £220,000              | 8%         | Clearance / write-down        |
| 365 days+    | £80,000               | 3%         | Write-off / dispose           |
| **Total**    | **£2,622,000**        | 100%       |                               |

Five things to notice:

1. **23% of inventory is over 90 days old.** For apparel (seasonal), 90 days is the markdown threshold. £610K is at risk of margin compression. The merchant should be running clearance promotions on these SKUs now, not next month.
2. **The 181-365D bucket (£220K, 8%) is the dead-stock candidate.** Pair with [Dead Stock Value](/nerve-centre/kpi-cards/microsoft-dynamics/dead-stock-value) which uses zero-velocity (no sales in 90+ days) as the criterion. Aging and zero-velocity overlap heavily but not perfectly.
3. **365D+ bucket (£80K) is auditor-write-down material.** UK accounting standards (FRS 102 / IFRS) require provisions on inventory expected to be sold below cost. A 365D+ apparel SKU rarely sells at full price. The Controller should be booking a Provision for Inventory Write-down at fiscal year-end.
4. **The alert (>15% in 180+ bucket) fires at 11% (8% + 3%).** Not yet over the threshold, but trending towards it. The Vortex IQ trendline shows the 180+ bucket has grown from 7% to 11% over 6 months.
5. **Cross-connector finding (the kill-shot):** of the £610K aged > 90D, £128K of those SKUs are still receiving Google + Meta ad spend. See [Dead Stock with Active Ad Spend](/nerve-centre/kpi-cards/microsoft-dynamics/dead-stock-with-active-ad-spend) for the pause list.

## Sibling cards merchants should reference together

| Card                                                                                                          | Why pair it with Inventory Aging                                              |
| ------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| [Total Inventory Value](/nerve-centre/kpi-cards/microsoft-dynamics/msd-total-inventory-value)                 | The denominator across all buckets.                                           |
| [Dead Stock Value](/nerve-centre/kpi-cards/microsoft-dynamics/dead-stock-value)                               | Different lens: zero-velocity vs aging. Most aged stock is dead, but not all. |
| [Top SKUs by Inventory Value](/nerve-centre/kpi-cards/microsoft-dynamics/msd-top-skus-value)                  | Which SKUs concentrate the aged buckets.                                      |
| [Margin by SKU](/nerve-centre/kpi-cards/microsoft-dynamics/margin-by-sku)                                     | Aged SKUs often have compressed margins from markdowns.                       |
| [Dead Stock with Active Ad Spend](/nerve-centre/kpi-cards/microsoft-dynamics/dead-stock-with-active-ad-spend) | Cross-connector kill-shot: aged stock you are still advertising.              |
| [Inventory Carrying Cost](/nerve-centre/kpi-cards/microsoft-dynamics/msd-inventory-carrying-cost)             | The annualised cost of holding the aged buckets.                              |
| [Dead Stock Threshold Breach](/nerve-centre/kpi-cards/microsoft-dynamics/dead-stock-threshold-breach)         | Alert fires when 180D+ bucket crosses threshold.                              |

## Reconciling against the vendor's own dashboard

**Where to look in Business Central:**

> **Reports > Inventory > Inventory Aging** (the closest native equivalent)
> **Reports > Inventory > Item Age Composition** (Value or Quantity variant)
> **Item List > drill to Item Ledger Entries with date filter**
> **Power BI > Inventory Performance > add aging bucket calculation manually**

The Item Age Composition report renders the same buckets when run for the same Locations. Date-bucket boundaries differ slightly between BC's defaults (30 / 60 / 90 / 180 / 365) and the card; ensure the report is run with matching periods.

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

| Reason                        | Direction                | Why                                                                                                                                                                             |
| ----------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **FIFO vs Average aging**     | Either                   | The card uses FIFO layer date for FIFO Items; Average uses weighted-average date. BC's Item Age Composition uses the same logic but the reporting bucket boundaries can differ. |
| **In-Transit treatment**      | Either                   | Card includes by default; some merchants exclude.                                                                                                                               |
| **Reservation handling**      | None                     | Reserved stock still counts as on-hand.                                                                                                                                         |
| **OData freshness**           | Card up to 15 min behind | Item Ledger Entries appear via OData within 15 minutes.                                                                                                                         |
| **Multi-Company aggregation** | Card materially higher   | Card consolidates; BC's report runs per-Company.                                                                                                                                |

**Cross-connector reconciliation:**

| Card                                                                              | Direction                | Notes                                                                                                                                                                                                     |
| --------------------------------------------------------------------------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [google\_ads.adwords\_total\_spend](/nerve-centre/google_ads/adwords_total_spend) | Cross-platform kill-shot | Aged SKUs with active ad spend. The most actionable finding any apparel merchant gets. See [Dead Stock with Active Ad Spend](/nerve-centre/kpi-cards/microsoft-dynamics/dead-stock-with-active-ad-spend). |
| [shopify.collection\_aging](/nerve-centre/shopify/collection_aging)               | Different lens           | Shopify's collection-level aging is sales-velocity-based, not receipt-date-based. Different metric.                                                                                                       |

## Known limitations / merchant FAQs

**What is a healthy aging distribution?**
Apparel: 60-80% in 0-90D, \< 20% in 91-180D, \< 5% in 180D+. Electronics with longer product lifecycles: 50-70% in 0-90D, \< 30% in 91-180D, \< 10% in 180D+. Wholesale durables can run higher in older buckets without alarm; fast-fashion cannot.

**Why are my Average-cost items showing weird aging?**
Average-cost commingles receipts into a single Unit Cost layer. Aging by single date is therefore approximated. The card uses the weighted-average receipt date across contributing layers; if you want strict FIFO aging, change the Costing Method on the Item.

**Does the card respect Item Tracking (Lot No., Serial No.)?**
Yes for FIFO Items with Item Tracking. The Lot/Serial-specific Receipt date drives the layer date. For Average-cost Items, Lot/Serial does not affect aging (Item-level weighted average).

**Multi-Location: can I see per-Location aging?**
Yes, sliceable on the dashboard. The default view is consolidated; click a bucket to drill to per-Location breakdown.

**How does this differ from Dead Stock Value?**
Aging asks "when did this stock arrive?". Dead Stock asks "when did this SKU last sell?". The two heavily overlap (old stock often does not sell) but differ in the tails. Newly-received SKUs that flopped on launch show as Dead Stock but in young aging buckets; old SKUs that still trickle out show as Aged but not Dead.

**The 180+ bucket alert is firing. What action?**
Three steps. First, run [Dead Stock with Active Ad Spend](/nerve-centre/kpi-cards/microsoft-dynamics/dead-stock-with-active-ad-spend) to pause ads on the worst SKUs. Second, set markdown promotions on the 180D+ SKUs (typically 30 to 50%). Third, review Purchase Orders to ensure new receipts are not adding to aged inventory.

**Does the card include kit / BOM components?**
For Manufacturing tenants: only finished goods at FIFO/Average layer date. Component aging in WIP is separate. Ask Vortex IQ for the BOM-extended variant.

**Can I write off aged stock from this card?**
Vortex IQ surfaces; you act in BC. The recommended flow is: identify SKUs > 365D, post an Inventory Reclassification Journal to scrap-out at zero value, or post a Sales Credit Memo to a Disposal Customer at clearance price. The card flags the candidates; the BC Functional Consultant executes.

**Power BI parity?**
The Inventory Aging Power BI tile (if installed via the Inventory Performance content pack) shows the same buckets per-Company. Multi-Company users need this card.

***

### Tracked live in Vortex IQ Nerve Centre

*Inventory Aging* 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.
