Perpetual Inventory Not Working If We Allow Negative Stock

Using latest v6.1.1

If we allow negative stock and perpetual is On…after created new sales invoice, the result → Accounting Entries is not posted (blank / no entry) but Stock ledger is updated with minus qty.

This is dangerous…accounting side and inventory side is not equal.


It will be like this, till item’s stock turns negative. In reality. We don’t have negative stock in reality. But since we are allowing it in the system, there will be stock and account mis-match, till negative item’s stock turns positive again.

Yes it’s correct but both side should be equal…means it should make account posting too.

If not…Do you mean we have to adjust the difference by making manual journal?

For creating accounting entry, system should not valuation rate of the item. But item delivered at negative stock level won’t have any valuation rate. Hence no accounting entry is booked at that point.

It will be booked when you purchase the item. Based on the valuation rate of those purchased item, accounting entry will be posted for items delivered at negative stock level.

1 Like

Yes but the problem is that…there’ll always be mismatch (forever…) between accounting balance and stock balance.

---- After delivery, stock ledger is -1 and account balance is zero (no accounting entry)
---- After purchase receipt, stock is 0 (zero) but account balance now have debit amount (rate at purchase)

So my question, what to do with this difference amount? I see no way out…we have to adjust this manually by creating journal entry to post accounting entry for delivered items :
Cost of Good Sold at Debit, and Warehouse (stock assets) at Credit

But creating manual journal is not fit solution…I think when submitting purchase receipt of negative stocks, the system should post delivery/sales invoice accounting entries for stock…So both side are equal… What do you think?

Sometimes business needs to allow negative stock so they can serve invoicing first for customer (no stock in reality). After that they’ll fill up the stock from supplier.

I wonder if there’s no erpnext customers who awared on this issue?

You can invoice before delivery, but not deliver if there is no stock!

1 Like

I agree, but when this option is checked…we must think the consequence on accounting side…so there must be a way-out to make inventory side and accounting value to be always equal/in-balance. If not, then this ‘allow negative stock’ is not working!

I don’t understand why erpnext has this option without clear purpose?

I’ll give a real example where this option can be utilized and helpful for businesses:
One of the biggest challenges when businesses decide to start using an ERP System is stock/inventory with huge-thousands of items qty, especially for retail, trading,supplier business where they are still doing manual works (may be only with excel) with no integrated ERP and the data is not accurate.

In this situation, to get accurate data…they have to do physical-check and count it manually per item per warehouse and input it into ERP system. Until all items are in the system, then they can start using it.

But can you imagine a business with thousands of items with multiple branches/warehouses…how long shall it take to count the whole stock items? On the other hand, the business must keep running…stock is going-in/out everytime.

So now… it’s very hard to start an ERP system for this business unless they already has accurate data from existing system…so they don’t need to do physical-checking again.

‘Allow negative stock’ should be the a way-out…in my opinion. They can just start using ERP even without accurate stock data. The items keep going-in/out and they can do physical check for e.g. 100 items, do stock recon…tomorrow do it again for another 100 items and so on…until all items are reconciled in the system. On the other hand, they can do book-keeping,calculate profit/loss, manage payable etc without a must ‘long-waiting’ until all items are completely reconciled in the system.

This way will make everything easier and giving a lot flexibility…

But on current erpnext, we’ll have mismatch on accounts side as the system doesn’t post accounting entry if the item is in negative (no valuation rate is found) when deliver or sell the items.

So my resolution is…quite simple:
When this option is checked (allow negative stock)…if no valuation rate is found (minus qty), just use last purchase/last valuation rate as the value…If still not found, then use buying price-list rate as its valuation rate until the qty turn to positive again to use FIFO,

Please other user comments and thoughts…



I agree it makes things harder to start, but its a good habit and pays off handsomely. Having accurate data makes life so much better.

1 Like

@rmehta it’s very hard to get accurate data at at once in one time. Thats why I think it will be a plus point if the erp system can help them to get accurate data … Instead of pushing users to do physical check at once…with negative is allowed they can do it part by part until all items are reconciled in the system.

Can you point to lines where this ‘get valuation rate’ method is executed when submitting delivery note or invoice? Maybe I or others can try to do something…

I’m with @jof2jc. The accounting is a mess. Here’s another scenario why we should do this:

  1. A customer places an order for an item that is at 0 stock, with expedited shipping.
  2. The Purchase Items are delivered to our warehouse and we ship it right away to the customer to meet our shipping SLA.
  3. The Purchased Items are received at a later time in the day since this is not critical to our SLA.