Last week, I was working on “Landed Cost Wizard”, there were some issues related to general ledger entries of additional charges. While fixing the issue, I realized that it’s not a easy fix as I thought. There is a major problem in core design, due to
which landed cost components has no traceability.
I discussed about the issue with my colleagues, we mutually agreed to redesign the feature.
You might be curious to know about the new design and what was wrong in the old one.
Before explaining the new feature, first let me explain what is landed cost and how it works.
What is Landed Cost?
Landed Cost is the total cost of a product to reach the product at the buyer’s door. Landed costs include the original cost of the item, complete shipping costs, customs duties, taxes, insurance and currency conversion fees etc. All of these components
might not be applicable in every shipment, but relevant components must be considered as a part of the landed cost.
To understand landed cost better, let’s take an example based on our daily lives. You need to purchase a new washing machine for your home. Before making actual purchase, you probably do some investigation to know the best price. In this process, you
often found a better deal from a store which is long away from your home. But you should also consider shipping cost while buying from that store. Total cost including transportation might be more than the price you get in your nearby store. In that case
you will choose to buy from your nearest store, as landed cost of the item is cheaper in the nearest store.
Similarly in business, identifying landed cost for a item / product is very crucial, as it helps to decide selling cost of that item and impacts company’s profitability. Hence all applicable landed cost charges should be included in item’s valuation
According to the Third-Party Logistics Study
, only 45% of the respondents stated that they use Landed Cost extensively. The main reasons of not using Landed Cost are unavailability of necessary data (49%), lack of right tools (48%), do not have sufficient time (31%) and not sure how to apply
landed cost (27%).
Why Landed Cost Voucher?
In ERPNext, you can add landed cost related charges in “Taxes and Charges” table while creating Purchase Receipt (PR). You should add those charges for “Total and Valuation” or “Valuation”. Charges which are payable to the same supplier from whom you
are buying the items, should be tagged as “Total and Valuation”. Otherwise if applicable charges are payable to a 3rd party, it should be tagged as “Valuation”. On submission of PR, system will calculate landed cost of all items, considering those charges
and that landed cost will be considered to calculate item’s valuation rate (based on FIFO / Moving Average method). To know more about purchase taxes and charges, refer ERPNext Guide
But in reality, while making Purchase Receipt we might not know all the charges which are applicable for landed cost. Your transporter can send the invoice after 1 month, but there is no point in waiting for booking Purchase Receipt till then. Companies
who imports their products / parts, pays a huge amount as Customs Duty. And generally they get invoices from Customs Department after a period of time. In these cases, “Landed Cost Voucher” becomes handy, as it allows you to add those additional charges
on a later date, and to update landed cost of purchased items.
Landed Cost Voucher
In ERPNext, you will find the document under Stock module (Stock >> Tools >> Landed Cost Voucher). In the document, you can select multiple Purchase Receipts and fetch all items from those Purchase Receipts. Then you should add applicable
charges in “Taxes and Charges” table. You can easily delete an item if the added charges is not applicable to that item. The added charges are proportionately distributed among all the items based their amount.
The Backend Story
- On submission of Landed Cost Voucher, the applicable landed cost charges are updated in Purchase Receipt Item table.
- Valuation Rate of items are recalculated based on new landed cost. To know more about more valuation, check https://erpnext.com/user-guide/stock/item-valuation-fifo-and-moving-average
- If you are using “Perpetual Inventory”, the system will post general ledger entries to correct Stock-in-Hand balance. It will debit (increase) corresponding “warehouse account” and credit (decrease) “Expense Included in Valuation” account. If items
are already delivered, the Cost-of-Goods-Sold (CoGS) value has been booked as per old valuation rate. Hence, general ledger entries are reposted for all future outgoing entries of associated items, to correct CoGS value.
How is it different from old Landed Cost Wizard?
- In the old design as well, you can select multiple Purchase Receipts and distribute landed cost charges among all the items of those PRs. But it was not possible to apply charges on selected items.
- Applicable charges were directly added into Purchase Receipt Taxes table to calculate new landed cost of PR items. It was very difficult to trace which charges are added through Landed Cost Wizard, who added those charges, when it was added etc.
- In the old design, “Stock Received But Not Billed” account was credited, instead of “Expense Included in Valuation”, which led to incorrect CoGS value.
Though both name sounds almost same, but when it came to naming of a feature / tool, it should always justify it’s functionality. The behaviour of earlier Landed Cost Wizard was like a Tool / Utility, where one can select PR and add some charges to those
PR to calculate item’s landed cost. A Wizard / Tool is used to create / update some values in other documents, but does not maintain it’s own history.
On the other hand, a Voucher maintain it’s history and gives full traceability. The new Landed Cost Voucher is a submittable document and behaves like a normal transaction.