
If you import, you already know the problem. The supplier confirms quantities and a delivery window, but the rate depends on the exchange rate the day the payment clears, or the freight quote that has not come back yet, or a duty calculation nobody will commit to. You need the purchase order to exist anyway, because the goods have to be booked.
So somebody types a number in. That guess then travels through every report you own.
The problem: a placeholder cost never stays a placeholder
The number entered to get the PO saved becomes the cost price. It sets the stock value, it sets the margin the reports show, and it sets the price somebody quotes a customer. Nobody goes back and corrects it, because by the time the real rate is known the PO has been approved and the goods are on a ship.

What the guess actually costs
Take one line: 400 units, guessed at Rs 1,200, landed at Rs 1,470.

Rs 108,000 of stock value that was never real. The margin report shows 28 percent when the true figure is closer to 12. The reorder decision is made against a cost that never existed. And the vendor balance is short by the difference until somebody reconciles it by hand.
None of that is a software failure. It is the arithmetic doing exactly what it was told with a number that was invented.
The fix: let the rate arrive when it arrives
The order records what is actually known on the day: vendor, quantities, delivery date. The rate stays empty on purpose, because an empty field is honest and a guess is not.
When the delivery lands and the real landed cost is known, it is entered once, against the line it belongs to. The purchase order backfills, the vendor bill is raised at the correct figure, and the stock value updates from the same entry. Nothing is typed twice, and there is a trail showing when the rate was set and by whom.
That is how Modventrix handles it, and it exists because import buyers in Pakistan asked for it repeatedly. It is not the common way to build purchasing software, which usually assumes a price exists at order time.
Then the vendor balance stops being a memory
Once receipts and payments post against the same supplier line, what you owe is a number you can read rather than a figure you reconstruct at the end of the month.

Tips and tricks
Never save a PO with a placeholder rate you intend to fix later. You will not fix it later. If the system forces a number, put the last known real rate and flag the line, so at least the guess is visible.
Enter the landed cost, not the invoice cost. Freight, duty and clearing belong in the number, because that is what the unit actually cost you sitting on your shelf. A cost price that excludes them makes every margin look better than it is.
Check one line per delivery against the vendor invoice. Not all of them, one. Systematic differences show up quickly and random ones do not matter.
Keep the delivery date on the PO even when the rate is blank. It is what drives your reorder planning, and it is knowable long before the price is.
Ask what happens to already-sold stock when a rate is corrected. If you sold units before the real cost was known, the margin on those sales was computed from the guess. Know whether your system restates them or leaves them, because the two answers give very different profit figures.
What comes next
The rate is captured at receiving, which means the receiving step is now carrying more weight than most shops give it. That is the next problem in the chain: what to do when the delivery does not match the order.