Opening Stock Balance without Valuation

How do you post an opening balance for stock where there is no Valuation and if you use FIFO?

The system prohibits you if you have “Make Accounting Entry For Every Stock Movement” enabled.

Code wise there is a variable called allow_zero_rate which cannot be set anywhere and only can be called programmatically.

What would we need to do if we have opening stock, do not want to key in valuation rates for each item and want to use FIFO?

1 Like

The perpetual inventory system totally depends on correct valuation rate of items. There is no sense of enabling perpetual inventory if you valuation rate is zero.

In case if the item really have zero cost, you can set “Is Sample Item” checkbox while making the stock transactions.

Understand your point. But there are businesses whom have opening stock and would like to just import those items but do not want to go through the hassle of putting in initial valuation and instead would like to consume these stock on a FIFO basis. In such a model, when there are proper purchases (POs) registered in the system the valuation will eventually be accurate. Do correct me if I am wrong.

@nabinhait what are the implications if “Is Sample Item” is checked for the initial opening stock migration? will it impact other things in the future?

Valuation rate does not affected from PO, it is updated from Purchase Receipt. And if you are opening stock once and later after consuming it, again make PR for those item, it will add the same stock twice.

And honestly, if you cannot maintain valuation rate of item properly at the time of incoming entry, don’t enable perpetual inventory. Because, ultimately it will give you wrong Stock-in-Hand balance in the Asset side.

Same answer as above. You can do it, but you will get incorrect Stock-in-Hand balance.

Yes PR not PO. I don’t mean to PR it for the same amount of items, what I mean is you can PR for future items to eventually get a more accurate valuation rate. If we run FIFO it will consume the zero valued stock first then eventually get to the stock that has value. Am I right to say that?

I do agree to this, It will certainly provide the wrong value.

@nabinhait Can I ask, what was this feature created for? Why is it called Sample Item? Is it just an item of zero value?

Yes, it will correct Stock Balance in the future. But until that time, the system will give incorrect value. The main purpose of perpetual inventory is, at any point of time it gives correct stock balance in chart of accounts.

I am also thinking to change the label of the field from “Is Sample Item” to “Allow zero valuation rate”. Initially I thought the zero valuation rate is only applicable for sample item.

I’m with @bohlian on this. I don’t think organizations can move to correct stock valuation overnight, the day they launch ERPNext. It would be nice if they could though. Like it they took another day and loaded up the right valuations.

But I can understand when organizations want to begin with imperfect data and would like to get to less imperfect data over time, and one day hopefully get to perfect data as well.

So I wouldn’t advice people to disable perpetual inventory, just because they do not have good data to begin with. This is what I would do:

Begin initial stock valuation with 0.01 or some number that is not 0. Or even 0 is ERPNext allows you to do that, without labeling it a sample item.
As you make purchase receipts of the stuff, submit a stock reconciliation report for your existing stocks.
Whether you are using FIFO or Moving Average, take the Last Purchase Rate (the one you just bought) and ensure that the valuation of your stocks of those items since the time you set up ERPNext is corrected. You will have to use a different formula for FIFO and Moving Average. You have to do this for the entire chain of production. Meaning if your production process is RM>A>B>C>FG, and you have to correct the valuation rate for RM, you have to correct the valuation rate for A, B, C and FG as well - the ones you produced using valuation rate = 0.01. If you have already invoiced or delivered any of these items, you will have to correct the Expense Account (Cost of Goods Sold) as well.

@nabinhait is there anyway you can provide a utility to manage this automatically. That is to have a check box that says “I don’t have the valuation rate for this item right”. Or something. And then run a report that identifies all the transactions done for the item(s) with 0 or 0.01 valuation, key in the actual valuation and hit “Apply” and boom, ERPNext should do this automatically.

But in summary, it is better to begin the pursuit of getting the valuation of your stocks on ERPNext by enabling perpetual inventory, than to continue with your existing approach of Cost of Goods Sold = Closing Stocks + Purchases - Opening Stock. But you have to be aware that your underlying data is wrong, so that you don’t understate or overstate your profit or loss or your tax liability.

@nabinhait, @JayRam I will pick this up, have created a issue for this as well to track. Can you guys assign it to me?

https://github.com/frappe/erpnext/issues/7928

@bohlian Assigned the issue