RefillFlow
I built an elaborate system to keep my coffee mug full
It involves a barcode, a printer in the kitchen and a supervisor. Stay for the ending.

I have a problem. My mug runs empty at the worst moments, usually halfway through something important. Refilling it means getting up, losing my thread and coming back with a coffee and no memory of what I was doing.
So I built a system.
The label. My mug now carries a card with three things on it: what goes in it (coffee, milk, no sugar), how much (one mug) and where it lives (my desk). The mug only ever holds that. No experimental teas, no "while you're up". The card says what it says.

The signal. The empty mug is the only way to ask. No shouting through to the kitchen, no "anyone want a coffee?". If the mug isn't empty, there's no coffee. When it is, the mug does the asking.
The scan. When it runs dry, I scan its card at my desk. The screen asks me to confirm: coffee, one mug, to my desk. I confirm. It's a strangely solemn moment.

The ticket. In the kitchen, a label printer wakes up and prints a ticket headed REFILL REQUEST, with my mug's details underneath. Nobody needs to be standing at the printer. Then I walk to the kitchen, where the ticket is waiting to tell me what I already know. I am, it turns out, also the stores department.

The board. The kitchen has a board showing every open request: how long it's been waiting, when it's due and how urgent it is. There's usually one request on it. It's mine.
The rules. I wrote some rules in plain English and approved them. Anything in the caffeine family is urgent and due within ten working minutes. If nobody has accepted a coffee request after fifteen minutes, it escalates to the supervisor. The supervisor is also me. We've had words.
Impatience. Some days I scan the mug again. And again. It doesn't make three coffees. It shows me the request that's already open, how long it's been waiting and that nobody has accepted it yet. Nobody has accepted it because stores is me, and I'm at my desk, scanning a mug.

Delivery. Stores (me) accepts the request, makes the coffee and brings it to my desk with a dispatch ticket, because of course it has paperwork. I scan the ticket and the mug, and the system records exactly what arrived. Only then is the request closed: not when the ticket printed, not when the kettle boiled, but when the coffee reached the desk.

Biscuits. Things escalated. My desk now has two biscuit tins, each with its own card: digestives, six, my desk. When one tin is empty I scan it and start on the other, so I'm never without a biscuit while the first is refilled.

The shortage. One morning stores (me again) found only four digestives left in the packet. Four went to the desk. The missing two were recorded as a shortage, with an owner, a reason ("packet empty") and a time to look at it again. They stay on the board until somebody supplies them, and everyone can see whose problem it is. It's mine.

Why didn't the system see that coming? It doesn't count biscuits, or coffee beans. It knows what was asked for, what was sent and what arrived. What's in the cupboard is the shopping list's job.
Why not just make a big pot? That's the obvious alternative: a fresh pot every hour, whether I want one or not. By lunchtime there'd be three half-drunk mugs going cold on my desk, and more coffee poured away than drunk. My system only makes a coffee when an empty mug asks for one. Nothing is made before it's wanted, so nothing goes cold.

Everything above is kanban, the method Toyota made famous. Kanban is Japanese for "sign" or "signboard", and in my kitchen the sign is an empty mug.
| In my kitchen | On a factory floor | What it's called |
|---|---|---|
| The mug | A bin of parts beside the line | Container |
| The label on the mug | A card with the part, the quantity and the location | Kanban card |
| The empty mug asking for more | The empty bin asking for more | Pull signal |
| The kitchen | Stores | Supermarket (really) |
| Two biscuit tins | Two bins of the same part | Two-bin system |
| A pot every hour, going cold | Making parts to a schedule, needed or not | Push, and overproduction |


The name "supermarket" is a clue. Toyota's Taiichi Ohno took the idea from photos of American supermarkets, where every product had its own place on the shelf for shoppers to take. Toyota installed its first factory supermarket in 1953, in the machine shop of its main plant.

Full disclosure
I didn't invent any of this, obviously. The system isn't even mine: it's RefillFlow, which we make for factory stores. I just pointed it at a mug.
In my kitchen, the line, the stores and the supervisor are all one person, which makes this a very elaborate way to make coffee. On a factory floor they're different people, sometimes in different buildings. Swap the mug for a bin of M6 nuts on line 3, and the jokes become the point. The scan replaces a walk to stores. A second scan can't send the same request twice. A shortage stays on the board until somebody sorts it out.

Doing it with a scanner and a printer, rather than a card someone carries, is called e-kanban. If you have bins that run empty, here's how barcode kanban works in RefillFlow.
It doesn't count your stock: that stays in your ERP or spreadsheet. And you still have to make the coffee yourself. I checked.
The photographs in this post were generated with AI.
