An import PO rarely arrives as one clean invoice. A 30% deposit starts production. A 70% balance ships the order. A partial shipment may split the balance again. By month-end, the PO lives in a spreadsheet and the invoices live in an inbox.
A purchase order is not a document you file. It is a balance you spend.
The three numbers that keep an import PO honest
Every PO has three numbers worth keeping in view:
- Ordered: what you committed to buy.
- Billed: what the supplier has invoiced against it.
- Remaining: what is still available to bill.
An invoice should move billed up and remaining down. If it references no PO, it should not quietly consume the balance.
Why deposits break spreadsheets
A deposit invoice looks like a normal invoice. It has a supplier, a number, a date, and a total. If the spreadsheet adds it to the order total instead of the PO balance, the balance invoice appears to over-bill. If it ignores the deposit, the supplier gets paid twice.
The fix is not more columns. Treat the deposit as a partial billing event linked to the PO, with its own invoice record and approval.

Partial shipments and line-level reality
A supplier may ship half the order. The invoice can be correct at the header level while the line quantities do not match what arrived. That is why the PO detail should keep line items, linked invoices, and remaining balances visible together.
Invoice-level matching catches cumulative over-billing. For line-level control, pair it with a receiving process so quantities are checked when goods arrive.
Over-billing is a signal, not an inconvenience
If an invoice pushes cumulative billing past the PO, stop. The invoice that crosses the line should be flagged before payment, not discovered at month-end. A tolerance of a few cents for rounding is fine; a five-figure overage is not.

Multi-currency POs need one base view
A CNY PO, a USD deposit, and a MYR ledger are normal. Keep the printed amounts; show a base-currency view for reporting; keep the rate and source. Do not let a currency mismatch hide a real over-billing issue.
Close the month without rebuilding the spreadsheet
A clean close should be a review: open POs with remaining balances, invoices waiting for approval, over-billing exceptions, and posting status.
- Which POs are fully billed?
- Which still have a remaining balance?
- Which invoices are unmatched?
- Which invoices exceeded the PO?
- Which approved invoices have not posted?

The goal is not to eliminate spreadsheets. It is to stop using them as the only place where the PO balance, the invoice, and the payment agree. Put that logic on the desk, and month-end becomes a review instead of a rebuild.

