Stock movement adjustments
Average cost (AC)
Accounting method for determining the value of stock.
Average cost calculation: Amount / Quantity
Where:
Amount = (stock quantity * average cost) + (stock receipt quantity * receipt price)
Quantity = (stock quantity + stock receipt quantity)
FIFO (First In, First Out)
Stock management method where goods and raw materials are issued in order of their receipt into stock.
LIFO (Last In, First Out)
Stock management method where the last product received into stock is the first to be issued.
- Allocation date modification (FUNIPTD)
- Average cost evol./movement (CONSSMA)
- Cost adjustment (FUNSTKADJ)
- Inquiry screens (GESGTC)
- Periods (GESPER)
- Stock valuation report (FUNSTVA)
- Valuation methods (GESTCM)
- Value change (FUNCHGVAL)
GPA chapter / COS group
- CSTRCPORD - Provisional cost declaration
STO chapter / VAL group
- ABSLIM - Limit of val var absorption
- MAXABSCOD - Valuation variance absorption
- MAXABSPER - % maximum of over-absorption
Adjustment principle
To change the value of a stock movement you raise an adjustment movement.
Adjustment movements create additional records in the stock journals.
Possible scenarios requiring an adjustment movement:
- A price is modified after receipt.
- A supplier receipt is recorded at one price but invoiced at a different price.
- An additional invoice, or multiple additional invoices are received for costs such as customs fees or a carrier invoice which must be apportioned over the received products.
- A provisional production price is adjusted to the actual cost price.
- An assembly is modified.
To change the value of a stock movement, the Adjust receipt costs check box in the Standard rules block of the Valuation method function (GESTCM) must be clear.
In some cases price adjustments can generate variances which are not absorbed. This can occur when the adjustment is performed when the transaction line quantity is greater than the stock quantity (issues were made before the adjustment).
If the number of products remaining is low, the variances to be distributed can substantially impact the average cost. Using parameters, you can restrict the value (in percent) of the variance for the resulting average cost.
MAXABSCOD parameter
Use the MAXABSCOD - Valuation variance absorption parameter (STO chapter, VAL group) to define if the variance for the resulting average cost is to be limited:
No - No limit.
Absorption on site - The variance value of the average cost at the site is limited.
Absorption on site/lot - The variance value of the average cost for the lot at the site is limited (even more so for the average unit cost variance).
MAXABSPER parameter
When applied, the maximum range is defined by the MAXABSPER - Maximum percentage of over-absorption parameter (STO chapter, VAL group).
The most common value is 10, which represents limiting the variance of the average cost or lot average cost to an average +/-10%.
The "not absorbed" variance is stored in the stock journal and can be posted to a related account (depending on the setup of the associated automatic journal).
ABSLIM parameter
The ABSLIM - Limit of value variance absorption parameter (STO chapter, VAL group) limits the absorbed amount, based on the quantity remaining on the transaction line for the corresponding FIFO stack element. Absorption is only performed on the stack element quantity, not the overall stock quantity.
The amounts that have been absorbed are distributed over all the FIFO stack elements in proportion to the quantities available for each element.
Example
36 products are received at a unit price of €10. Previous stock = 0 (zero).
22 products are issued.
6 products are received at a unit price of €18.
The receipt for 36 products is revalued at €15.
A total variance of 180 needs to be apportioned over the 20 remaining products, which means a revaluation of €9 per product.
- The stock residual value before valuation is (14 * 10) + (6 * 18) = €248 (average cost = €12.40).
- There are 20 products remaining in stock, which makes it possible to directly absorb 20 x (15 - 10) = €100 if the maximum absorption parameter is set to 10% of the remaining stock value, so 248 + 100 = €348. It is not possible, therefore, to over-absorb more than €34.80.
The maximum total absorption will be: 100 + 34.80 = €134.80.
The stock value will then be €382.80. This means the average cost is equal to €19.14.
The "not absorbed" variance that can be posted would be: 180 - 134.80 = €45.20.
- In the FIFO stack, this variance will be allocated to the revalued stack element. The stack element corresponding to the first 36 products will be impacted, leaving 14 products (134.8 / 20 (stock quantity) = 6.74).
- The amount allocated to the stack element will be: 6.74 * 14 (stack element remaining quantity) = 94.36.
Average cost calculations
Issue price adjustments
Events that trigger an adjustment to an issue price are as follows:
- Invoicing a receipt (if the amount differs from the order amount).
- Entering an additional invoice.
- Entering a credit memo in value or quantity.
- Closing a receipt.
- Calculating the production cost price (if the actual cost price differs from the provisional cost price amount).
- Manually modifying the average cost value to date (using the Value change function (FUNCHGVAL)).
- Calculating the subcontracting cost price.
- Modifying stock movements and creating backdated movements.
Cost adjustment function (FUNSTKADJ)
The purpose of the Cost adjustment function (FUNSTKADJ) is to take the average cost modification into account for issue movements. This increases the accuracy of the margin calculation (average cost or FIFO margin calculation).
This function also manages the recalculation of FIFO stacks and therefore the update of the value of issue movements managed by this method.
Unposted movements are updated.
Posted movements are not modified. A new adjustment movement is created to skip the variance.
Production costs adjustment
An adjustment can be performed where the calculated actual cost price of a work order is different from the provisional cost price. This scenario can occur where there is a difference in consumed quantities, prices, or elapsed time.
The CSTRCPORD - Provisional cost declaration parameter (GPA chapter, COS group) determines what the provisional cost price calculation applies to. This can be to:
- The theoretical cost (calculated based on technical data).
- The actual cost (calculated based on the work order data).
Operation cycle
The calculated production cost price of a manufactured product (completed work order) is based on the values of the given components.
The stock value is adjusted if, for example, the average cost of one of the components is changed because it was consumed after the invoice was received and had a different price from the order price.
The following tables demonstrate a change to the stock value following a price adjustment:
Negative stock and backdated movements
The average cost recalculation stops if a negative stock position is encountered.
The logic in the diagram above also applies to backdated movements.
Use the Allocation date modification function (FUNIPTD) to correct allocation dates later in the process. You must relaunch the Cost adjustment function (FUNSTKADJ) for the modification to be applied.
Examples
Creation date | Movement type | STK quantity | STK | Order variance | Variance not absorbed | Average cost after | Amount after |
---|---|---|---|---|---|---|---|
18/07 | Receipt | 10.00 | Un | 100.00 | 10.00 | 100.00 | |
18/07 | Customer delivery | -9.00 | Un | -90.00 | 10.00 | 10.00 | |
18/07 | Receipt | -10.00 | Un | ||||
18/07 | Receipt | 10.00 | Un | 2.10 | 7.90 | 12.10 | 12.10 |
First line: Receipt of 10 units for €10
Second line: Delivery of 9 units
Third and fourth line: Invoice of 10 units for €11
Issue adjustment:
Creation date | Movement type | STK quantity | STK | Order variance | Variance not absorbed | Average cost after | Amount after |
---|---|---|---|---|---|---|---|
18/07 | Receipt | 10.00 | Un | 100.00 | 10.00 | 100.00 | |
18/07 | Customer delivery | -9.00 | Un | -99.00 | 1.00 | 1.00 | |
18/07 | Receipt | -10.00 | Un | ||||
18/07 | Receipt | 10.00 | Un | 10 | 0 | 11 | 11 |
Creation date | Movement type | STK quantity | STK | Order variance | Variance not absorbed | Average cost after | Amount after | |||
---|---|---|---|---|---|---|---|---|---|---|
18/07 | Receipt | 10.00 | Un | 100.00 | 10.00 | 100.00 | ||||
18/07 | Customer delivery | -9.00 | Un | -90.00 | 10.00 | 10.00 | ||||
18/07 | Receipt | -10.00 | Un | -1.11 | 10.00 | |||||
Accounting | 18/07 | Receipt | 10.00 | Un | 2.10 | 7.90 | 12.10 | 12.10 | ||
interface | 18/07 | Receipt | -10.00 | Un | -1.34 | 12.10 | ||||
18/07 | Receipt | 10.00 | Un | 7.90 | -7.90 | 20.00 | 20.00 | |||
18/07 | Customer delivery | 9.00 | Un | 2.00 | 20.00 | |||||
18/07 | Customer delivery | -9.00 | Un | -9.00 | 11.00 | 11.00 |
First line: Receipt of 10 units for €10
Second line: Delivery of 9 units
Third and fourth line: Invoice of 10 units for €11
Fifth and eighth line: Issue adjustment
Receipt price adjustments
Events that trigger an adjustment to a receipt price are as follows:
- Invoicing a receipt (if the amount differs from the order amount).
- Entering an additional invoice.
- Entering a credit memo in value or quantity in purchases.
- Closing a receipt.
- Calculating the production cost price (if the actual cost price differs from the provisional cost price amount).
- Calculating the subcontracting cost price.
In these situations the average cost (AC) is recalculated automatically based on the available stock. The value of the given movement is updated.
Calculation rules
An adjustment updates the average cost, as follows:
- If the stock quantity is greater than or equal to the receipt quantity the adjustment applies to, the valuation variance updates the average cost amount.
- If the stock quantity is less than the receipt quantity the adjustment applies to, the MAXABSCOD - Valuation variance absorption parameter (STO chapter, VAL group) determines where the valuation variance is applied:
- MAXABSCOD is set to No - The value is allocated to the average cost amount.
- MAXABSCOD is set to Absorption on site - The value is allocated to the average cost amount with respect to the stock quantity.
The MAXABSPER - Maximum percentage of over-absorption parameter (STO chapter, VAL group) then determines what happens to the balance:
- MAXABSPER is set to 0 - The variance is "not absorbed". A "not absorbed" status is displayed in the AMTDEV (Variance not absorbed) field of the STOJOU (Stock journal) table. The "not absorbed" variance can be posted to keep track of it.
- MAXABSPER is greater than zero - Part of the variance is "absorbed". In this case, the value of the MAXABSPER parameter corresponds to the share where you allow the average cost to vary. Elements that have not been "over absorbed" are considered as "not absorbed".
- MAXABSCOD is set to Absorption on site/lot - The value is allocated to the average cost amount with respect to the lot quantity.
The MAXABSPER - Maximum percentage of over-absorption parameter then determines what happens to the balance:
- MAXABSPER is set to 0 - The variance is "not absorbed". A "not absorbed" status is displayed in the AMTDEV (Variance not absorbed) field of the STOJOU (Stock journal) table. The "not absorbed" variance can be posted to keep track of it.
- MAXABSPER is greater than zero - Part of the variance is "absorbed". In this case, the value of the MAXABSPER parameter corresponds to the share where you allow the lot average cost to vary. Elements that have not been "over absorbed" are considered as "not absorbed".
Summary
Value of parameter MAXABSCOD | No | Absorption on site | Absorption on site/lot |
---|---|---|---|
Stock quantity is greater than or equal to the quantity to be adjusted. | The valuation delta updates the average cost amount. | The valuation delta updates the average cost amount. | The valuation delta updates the average cost and lot average cost amount. |
Stock quantity is less than the quantity to be adjusted. | The valuation delta updates the average cost amount. |
The valuation delta updates the average cost amount in proportion to the stock quantity. The MAXABSPER - Maximum percentage of over-absorption parameter (STO chapter, VAL group) can be used to increase the distributed amount. |
The valuation delta updates the average cost amount in proportion to the remaining lot quantity. The MAXABSPER - Maximum percentage of over-absorption parameter (STO chapter, VAL group) can be used to increase the distributed amount. |
Examples
To initialize the average cost of the product-site record an initial stock receipt movement with a price must be entered. The average cost is stored in the AVC (Average cost) field of the ITMMVT - Product-site totals table.
- During a stock issue, the average cost is never recalculated (but the amount and quantity are).
- During a new receipt (such as a supplier order receipt), the average cost is recalculated based on the following formula: Amount / Quantity.
Quantity | Order quantity | Variance | Price | Average cost | Margin | |
---|---|---|---|---|---|---|
Miscellaneous receipt | 10 | 200 | 200 | 20 | 20 | |
Shipment | -5 | 100 | 100 | 30 (sold) | 20 | 10 |
Receipt | 5 | 110 | 110 | 22 | 21 |
Average cost = ((5 units * 20) + (5 units * 22)) / (5 units + 5 units) = 21
Initial stock = 10 units
Average cost = €20
Purchase order, quantity of 10 units for €22
Receipt:
New average cost = €21
Purchase invoice price = €26
The price of the receipt changes from €22 to €26 and the average cost to €23.
Quantity | Price | Order quantity | Variance | Average cost | |
---|---|---|---|---|---|
Miscellaneous receipt | 10 | 200 | 200 | 20 | 20 |
Shipment | -5 | 100 | 100 | 30 (sold) | 20 |
Receipt | 5 | 110 | 110 | 22 | 21 |
To recalculate the average cost, the variance in the amount declared on the invoice is added or deducted.
- Receipt: 10 units * €22 = €220
- Invoice: 10 units * €26 = €260
Variance = +€40
The variance is added to the amount: (Stock * Average cost = 20 units) * €21 = €420.
New amount: 420 + 40 = €460
Average cost = 460 / 20 = 23
Adjusting receipt prices can be a problem if stock is at a lower level than the received stock (receipt = 10 units, stock remaining when invoicing = 1 unit). In this scenario the average cost can "explode". This is when the MAXABSCOD - Valuation variance absorption parameter (STO chapter, VAL group) and the MAXABSPER - Maximum percentage of over-absorption parameter (STO chapter, VAL group) are very useful.
With MAXABSCOD = No:
Quantity | Price | Order amount | Variance | Variance not absorbed | Average cost | Margin | |
---|---|---|---|---|---|---|---|
Initial stock | 10 | 20 | 20 | ||||
Receipt | 10 | 22 | 220 | 220 | 21 | ||
Shipment | -19 | 30 | 399 | 399 | 21 | 9 | |
Invoice | -10 | ||||||
Purchase invoice | 10 | 26 | 260 | 40 | 61 |
With MAXABSCOD = Absorption on site and MAXABSPER = 0%:
Using the figures from the table above, the variance is +€40 between the receipt and the invoice.
The system calculates prorata, the assessed variance based on the remaining stock (one remaining unit against 10 invoiced units = 10%).
10% of €40 = €4
The €4 is added to the stock amount.
New amount: 21 + 4 = 25
Average cost = 25 / 1 = 25
Variance not absorbed = €36
An order is raised for 60 products at a €11 unit price and an invoice for €60.
A first receipt of 50 products has a €10 unit price. The over-invoicing is calculated as follows:
- 60 products at €11 = €660
- An invoicing element at €60 in proportion to the quantities.
The cost price of the line is therefore (660 + 60) / 60 = €12.
The stock valuation process determines the following:
- €10.80 for the material (should be €11).
- €1.20 for the invoicing elements (should be €1).
The whole value of the invoicing elements is applied to the first over-invoiced receipt: 60 / 50 = €1.20.
The material is therefore valued at: €12 - €1.20 = €10.80.
A second receipt of 10 products has a €12 cost price. The stock valuation calculation considers only the material at €12 because the invoicing elements have already been integrated to stock.
The material distribution per invoicing element is calculated as follows:
- Material part: (50 * 10.80) + (10 * 12) = 540 + 120 = 660
- Invoicing elements part: 50 * 1.20 = 60
Impact of closing the average cost recalculation
The average cost recalculation in the accounting periods management is impacted by the stock status types (Stock status column in the Periods function (GESPER)). The capacity to adjust a movement on a closed period is influenced by the stock status period types.
Context
The "stock status" types are as follows:
Direct - The previously defined calculation rules apply with no restriction.
Balance adjustment - The previously defined calculation rules apply.
- For accounting entries, in order to take "not absorbed" amounts into account the entries are allocated to the first open accounting period.
- Price adjustments are performed as planned (the stock value is updated). However, the corresponding accounting entry is performed on the first open accounting period.
Prohibited - The stock value is not recalculated after changing the receipt value. As no price adjustment is triggered the value is transferred into a "not absorbed" variance adjustment movement. The related accounting entry is generated on the movement date (start date of the first open period).
Closing and adjustment
Issue adjustments:
- Issue adjustments for closed periods (Prohibited stock period) are not processed.
- "Not absorbed" amounts can remain on some movements even when the issue adjustment is in use.
Receipt adjustments:
- Receipt adjustments with an allocation date in a closed period (Prohibited stock status) do not adjust the stock value.
- A financial movement for the whole adjustment value is created as a "not absorbed" variance:
- The variance is created on the invoicing date if it is not included in a closed period.
- The variance is created on the start date of the first (next) open period.
Stock valuation report
Open: Stock > Periodic processing > Valuation > Stock valuation report
You use the Stock valuation report (FUNSTVA) to print the stock value:
- On the current date for the following valuation methods:
- Standard cost / Revised standard cost / Budget cost / Simulated cost
- Average cost / Lot average cost
- LIFO
- FIFO
- Last price
- On a previous date (quantity for given date * price for given date) for the following valuation methods:
- Standard cost / Revised standard cost
- Average cost
- LIFO
- FIFO
- As an Average cost calculation in the past.
The average cost calculation on a date in the past deducts the value of movements from the current date to the given past date from the current average cost.
As a rule, the movements to be deducted are selected based on their allocation date. However, when the issue adjustment is not activated, value change movements or receipt adjustment movements are selected based on their date of creation.
If the Accounting date field is selected, movements are selected based on their posting date.
Stock count variances
A negative stock count is processed as an issue.
A positive stock count variance is processed as a receipt.
In addition to the stock quantity updates and their adjustment in the stock line detail and lot totals, a variance impacts the valuation basis.
The valuation methods setup is used to define the positive and negative stock count variance values, instead of a normal issue or receipt.
Stock movements inquiry
Open: Stock > Inquiries > Movements > Average cost evol./movement
You use the Average cost evolution by movement inquiry function (CONSSMA) to track the product average cost for each stock movement.
Unusual movements, such as pricing errors, entry errors or allocation date errors are highlighted, as follows:
Red. Stock has become negative (backdating problem and/or pending movement).
Orange. An allocation date does not match the creation date (backdating problem).
Yellow. The average cost variance is greater than 10% after a receipt movement.
Additional information
- You can set up the number and order of the Evolution of the average cost by movement inquiry fields in the Inquiry screens function (GESGTC).
- The inquiry code is SMA.
- You can add date ranges to the movements for the inquiry.
- You can sort lines by allocation date or creation date, in ascending order or descending order.
- You can filter movement lines using a formula.
- You can record memo codes to save formulas and/or color codes (for different alerts).
- You can include internal, adjustment or pending adjustment movements.
Example
You define alerts by applying a color Style to a Formula.
- Click the Criteria action in the Average cost evol./movement function (CONSSMA).
- Add or change the Style as required:
- BACKRED = Negative stock
- BACKORANGE = Backdated issue
- BACKYELLOW = Average cost variance is greater than 10%
Average cost evol./movement (CONSSMA): Customizing how results display
Average cost evol./movement (CONSSMA): Movements view