Take a Monday at a rental company, after a Saturday wedding.
By nine the truck is back in the yard, and the driver says the job is done. By eleven the warehouse has counted the load, is two chairs short, and says it is not. Accounts has an invoice out with the balance due in thirty days, so for accounts "done" is a month away, if the client pays. The salesperson has a client who has stopped calling and a quote to write for next weekend; for the salesperson it was done on Saturday night.
Nobody is wrong. Each of them is describing a different thing. The trouble starts when one of them has to press a button that says Complete.
A status is a promise
The system I built for a six-branch rental company has eleven order statuses, three of them final. "Completed" is one of the three, and a final status is a strong thing to give an order. Once an order is complete, certain actions stop being possible, and certain lists stop showing it. That is what makes the status useful: the fulfilment queue only shows open orders, the stock sweep only looks at open orders, the monthly billing run skips complete ones.
So "complete" is not a label. It is a promise the system makes to everyone who reads it: nothing further will happen to this order's goods. The question is not which of the four people is right. It is which of their four definitions is a promise the system can actually keep.
Test each one.
If complete means "the truck is back"
The driver's definition. It is the earliest, and it is the one most rental companies use informally, because it is the moment the job stops being someone's problem.
Make it the rule and the two missing chairs vanish. The order is complete, so it drops off every list that would have asked where they are. The warehouse count says 2 at the client, forever, against an order nobody will open again. "Back" and "counted" differ by exactly the units that are missing, and that difference is the one thing a rental company most needs to know.
If complete means "the money is in"
The accounts definition. It is the safest-sounding one: do not close the job until it is paid.
Make it the rule and every order stays open for a month after the goods are back, and some for a year. The fulfilment queue fills with orders that have nothing left to fulfil. The ops team learns to ignore the bottom of the list, which means they ignore the real stragglers too. And money is routinely late for reasons that have nothing to do with the job: a client's payment cycle, a cheque that bounced, a dispute over one line. None of that should hold a status that is about goods.
If complete means "the client has gone quiet"
The salesperson's definition, and the honest one: as far as the sale is concerned, it was over on Saturday night.
But it is not a fact the system can check. It is a feeling about a relationship. A status has to be derived from something the software can see.
If complete means "every unit that went out has come back and been graded"
The warehouse definition, once the count is finished.
This is a fact about units, which is what a rental order is about. It is checkable: the system knows what left on each outward challan and what was graded on each return check, per product, per branch. It is the only one of the four that, when true, means nothing further can happen to the goods, because there are no goods out.
That is the rule. Until the graded count matches the dispatched count for every product, the Complete button is on the screen but greyed out, with the reason written next to it: 2 units of this product still out. When they match, it lights up. Only operations or an admin can press it.
What the button locks, and what it leaves open
If the promise is about goods, the lock should be about goods, and nothing else.
Locked after completion: new return challans, deleting the order, the salesperson editing the details. Still open: recording a payment, writing off a balance, adjusting the bill, correcting a spelling in the client's name. Pressing Complete moves no units; they moved at the return check, into the warehouse, into repair or written off. Completing says only: stop waiting.
The money side follows from this. A job completed on Monday with the balance due in thirty days is the normal case, not an exception, so money has to be recordable on a complete order. The reverse is also true: an order that was paid in full on Saturday is not complete on Saturday, because the chairs are still at the venue.
For long rentals billed monthly, this is also what stops the billing. The monthly run skips completed orders, so a job marked done stops billing that night, and a job that is not done keeps billing even if everyone has forgotten about it.
The last step
Pressing Complete asks for one more thing. A six-digit code appears, valid for five minutes. The staff member reads it to the client on the phone, the client reads it back, and the staff member types what they heard.
It takes under a minute. What it changes is who the close belongs to. Without it, "complete" is a click in the warehouse. With it, the close is a conversation with the client, recorded on the order with the time and the person who made the call. Delivery works the same way at the other end of the job.
Back to the Monday
With that rule, the Monday goes like this. The truck is back at nine; nothing changes, the order is still open. The warehouse counts at eleven and is two chairs short; the Complete button stays grey and says why. The two chairs turn up on Tuesday in a different truck, get graded, and the button lights up. Someone calls the client, reads the code, and the job is done. Accounts collects the balance three weeks later on an order that has been complete for all three.
If you run rentals, I would like to know which of the four you use today: van back, count matched, money in, or client signed off. And if it is one of the first three, what happens to the two chairs.