Here’s how it works in a simple example:
Example Scenario
Date |
Type |
Quantity |
Unit Cost |
Total Cost |
Reference |
Jan 1 |
Purchase |
100 |
$10 |
$1,000 |
Purchase Order |
Jan 5 |
Sale |
-50 |
$10 |
-$500 |
Sales Order |
Jan 10 |
Purchase |
50 |
$15 |
$750 |
Purchase Order |
So in total:
Purchased quantity = 100 + 50 = 150 units
Total purchase cost = $1,000 + $750 = $1,750
Weighted average cost = $1,750 ÷ 150 = $11.67 per unit
Adjustment required for 50 units = ($11.67 - $10)*50= $83.33 [updated later on]
After the recalculation, the system compares the inventory value that was posted earlier with the correct weighted average value.
Adjustment Posted by System
Date |
Account |
Debit |
Credit |
Reference |
Jan 31 |
Inventory Adjustment Account (P&L)-COGS |
$83.33 |
|
Weighted Average Inventory Closing |
Jan 31 |
Inventory Balance Sheet |
|
$83.33 |
Weighted Average Inventory Closing |
The $83.33 represents the difference in value based on the new weighted average calculation.
The reason why it doesn't work similar to FIFO (in FIFO, adjustment happens for each line level and also can be traced individually), weighted average costing is far complex than FIFO (telling about backend calculation logic) when it comes to iterations (we keep multiple iterations so that we can get as near as possible inventory value after running the inventory recalculation, system tries to settle the issue transactions against receive transactions). In order to avoid updating each lines in each iteration, MS designed this way to keep single reference to do all the relevant adjustments per item/site/warehouse/batch for which financial inventory is enabled.
Why No Financial Dimensions?
These adjustment transactions are purely system-generated to correct the inventory valuation.
They aren’t linked to any user-created transaction (like a PO or a production order), so they don’t carry financial dimensions.
Why Can’t I Trace the Source?
There’s no single source transaction because the system doesn’t post them based on a particular movement.
Instead, it aggregates everything and adjusts the total inventory value in one go.
Conclusion
From what I’ve seen, this is expected behaviour in D365 when using Weighted Average Cost.
this is how the system works by design.
We can have follow-up discussions to understand this in more clear manner.
Regards,
Neeraj Kumar
If this helped, please mark it as "Verified" for others facing the same issue Keep in mind that it is possible to mark more than one answer as verified