In this post, I will try to explain what we are currently doing, the drawback and advantages of that method. At the same time, what changes we are proposing and implication of that.
Let’s take following entries to explain our scenario.
Stock Valuation Method: FIFO
Fiscal Year Records:
Stock Ledger Entry
Accounting GL Entries
Now, let’s say, we do a back-dated incoming entry on 15-02-2016 for the same item with 4 qty at $1100.
Currently, based on the back-dated entries, system reposts FIFO Queue and recalculate balance qty and Valuation Rate for all the future entries. In this process, as valuation rate rate changes, it also affects existing accounting entries. So, we delete existing GL Entries and reposts Gl Entries where necessary.
So, after reposting it will look like this:
Updated Stock Ledger Entries (SLE)
Updated GL Entries (GLE)
So, you can see system reposted both SLE and GLE for all the future stock transactions. The same kind of reposting happens if we simply cancel/amend any back dated entries.
But currently, what system does not handle correctly is the “Stock Transfer” Entry on 01-03-2017. It was transfer of 2 qty between from WH1 to WH2. And here, before back-dated entry, system takes incoming rate as 1200 which was based on FIFO Queue on WH1. But if you look closely, after back dated entry, while reposting system did not reset the incoming rate of item on WH2, as per new FIFO Queue. As per current FIFO Queue rate should be 1100. But system did not correct it and hence valuation rate of WH2 remained incorrect. This bug is still there inside the system.
The problem to fix the bug is, if we change the incoming rate of WH2, we have to repost all the future stock transactions of WH2 as well. And in that process, we can find more transfer entries, and hence more reposting. We can also find transfer from WH2 to WH1, which needs reposting of WH1 again. So, there is no end of reposting.
Also, you may also already noticed that, we have changed SLE and GLE of last financial year. It is currently possible even if there are Period Closing Voucher has been entered for the last year.
We also deletes GL entries on cancellation of any accounting transaction, which should be done as per IFRS.
Apart from deleting GLE, we also update some values on GLE while doing payment reconciliation or advance adjustment on invoices, which is not desirable.
New Proposal (Immutable Ledger):
As per the new proposal, there will be 2 date fields in all transactions.
Posting Date: SLE / GLE Date (will always be posted on current date)
Transaction Date: When actual transaction takes place and can be back-dated.
These dates will also be part of every SLE and GLE.
So, in case of the above example of back-dated entry,
Posting date will be 01-12-2017 and Transaction Date will be 15-02-2016
And after the post SLE and GLE will look like following.
Stock Ledger Entries
So, here you can see, as the posting date is on current date, there will be no reposting of earlier stock transactions which has been made after 15-02-2016.
Similarly, if we cancel any back-dated entry, system will not delete existing SLE / GLE of that transactions (as it currently does). Instead, it will post reverse entries on current date (posting date), transaction date will be past date for the reverse entry.
We will be able to see all the accounting / stock reports based on both Transaction and Posting Date.
Note: I don’t have all the answers about the implementation, this is still in active discussion/design phase.