A Number Whose Meaning Is Missing
We record how much tax was paid on a purchase. We do not record what it means. That gap has a shape, and once you see it you find it everywhere.
An expense in our system can carry a tax amount. Somebody paid tax on a purchase, the figure goes in, and it is there afterwards. What the record does not contain is the rate that produced it, or anything at all about whether that money is coming back. It is a number without an interpretation — and the interesting thing is that for most businesses in most countries, that is completely fine.
Why an unstored meaning survives so long
Because the meaning is usually constant. If every business you serve recovers input tax, then "is this recoverable?" has one answer forever, and storing it would be storing the same value on every row. Nobody designs that in. The interpretation lives in the accounting treatment, in the chart of accounts, in the convention of which account a bookkeeper posts to — outside the data, in the practice around it.
That works until the answer stops being constant. In Taiwan it stops being constant inside a single country: most businesses recover input tax and financial businesses under article 11 do not, so the same amount on the same kind of invoice means opposite things depending on who recorded it. We wrote about that mechanism separately. This post is about the shape, because the shape is not Taiwanese.
The general form
A system stores a value. The value's meaning depends on something the system does not store. Everything works — no errors, no failed validation, correct totals — right up until two records that look identical need to mean different things.
| Stored | Not stored | When it bites |
|---|---|---|
| Tax paid on a purchase | Whether it is recoverable | A market where both answers are live at once. |
| A landed cost | Whether it is duty, freight or handling | The first time somebody asks which part moved. |
| A quantity | The unit it is counted in | The first supplier who quotes in a different one. |
| A date | Which timezone it was captured in | The first branch in another one. |
| An amount | Which currency it is in | Immediately, which is why nobody makes this mistake. |
The test that generalises
For any number a system stores, ask: could two records with this same value need to mean different things? If yes, the difference has to be stored too, and if it is not then the meaning is living in somebody's head or in a posting convention — both of which leave when the person does.
What we hold and what we do not, stated exactly
Being precise here matters, because the loose version of this claim has been written in this corpus before and was wrong three separate times. An expense carries a tax amount: that is real and it is not nothing. What it does not carry is the rate that produced the amount, or a recoverability classification. A purchase order carries no tax at all, which is a separate and smaller point — a purchase order is a commitment rather than a transaction, and tax becomes real when the expense does.
So the accurate summary is that we hold a figure and not its interpretation. That is enough to total what you paid, and not enough to say what it was.
Two minutes, on any system
- Record a purchase with tax and look at the stored record. Not the screen — the record. Ask what in it says whether the tax is recoverable. If the answer is "the account it was posted to", the meaning is a convention rather than data.
- Ask whether that convention is enforced. A convention nobody can break is nearly as good as a column. A convention held by one experienced person is a single point of failure with a notice period.
- Ask what happens to a business that switches regimes, or acquires one that is on the other. If historical records cannot say which they were, the past becomes unclassifiable rather than merely awkward.
Our answers: the account it was posted to, no, and the past becomes unclassifiable. Giving purchase-side tax a rate and a recoverability flag is on our list with a specification and a price, and it is not large work — which is worth saying plainly, because a small piece of work that has not been done is a more honest thing to be told about than a big one that is promised.