01
Why a position is a history, not a current value
You should be able to: Explain what is lost when a position is stored as a mutable current value.
A position has a past, and the past is often the interesting part: what was acquired, at what terms, what happened to it since. A single "current value" throws all of that away and keeps only the answer — which is exactly the information a reader needs to trust the answer.
Worse, a mutable value is unfalsifiable. If the number can be overwritten, a correction and a concealment look identical from the outside, and a reader who finds one glossed re-reads everything else looking for more. The record loses the one thing it was for.
So holding/1 keeps the history and derives the present, the same way a ledger keeps entries and derives a balance. The current state is a function of the transitions, never a field somebody set.
Source: FlashyOS — @flashyos/holding (holding/1)
02
Transitions, not states — supersede, never edit
You should be able to: Describe how a position is revised without destroying its history.
A holding is a sequence of transitions: acquisition, revaluation, partial realisation, write-off. Each is an entry that says what changed and when. Revising a position means publishing a new entry that supersedes an earlier one — the earlier entry is not edited or deleted, it is marked as superseded and left in place.
This is the same correction discipline the estate keeps in every format: a backlog item is revised, a pulse retracted, a shipped classification appended to — never edited in place. A superseding entry carries a reason, so the record shows not just that something changed but why.
The result is a position whose entire history is legible. A reader can replay the transitions and arrive at the present, or stop at any point and see what was true then. Nothing about the past has to be taken on trust, because nothing about the past was overwritten.
Source: FlashyOS — holding/1, transitions not states
03
What an entry must carry, or not exist
You should be able to: State the fields an ownership transition requires and why a partial one is not emitted.
An ownership edge carries a real instrument, a percentage, and a date, or it is not emitted at all. A half-specified holding — "we own some of that, roughly, at some point" — is worse than silence, because it reads as a fact while being one nobody can check.
This is the estate's "an empty register is honest; an invented one is not recoverable" rule at its sharpest. A cap table is a record before it is a spreadsheet, and on a record whose whole value is that it can be trusted about exactly this, a fabricated or vague entry is not a small error — it is the one that makes every other entry suspect.
So the discipline is binary: if you cannot state the instrument, the size and the date, you do not have a holding entry yet — you have a note to yourself, which does not belong in the published record.
Source: gord.holdings — the cap table as a record
04
Realisations, write-offs, and unresolved positions
You should be able to: Record the outcomes nobody enjoys recording, plainly.
The test of an ownership record is not how it states a gain — anyone states those — but how it states a loss. A realisation, a write-off, and a position that is simply unresolved are each recorded plainly, as their own transitions, in the same log as the acquisitions.
A record that quietly omits the write-offs is not a smaller true record; it is a false one, because it implies a track record that did not happen. The estate's rule is that a reader who finds one loss glossed will trust none of the wins — so the honest move is also the only credible one.
An unresolved position is stated as unresolved, not rounded to a guess or left off. "We do not yet know what became of this" is a fact, and recording it is what lets the eventual resolution be a transition rather than a surprise.
Source: gord.holdings — positions revised by a new statement
05
What the projection refuses
You should be able to: Explain why the published projection refuses currency fields by name, at any depth.
A holding/1 record carries the facts of a position; it does not carry a computed money value, and the projection refuses currency fields by name — many of them, checked at any depth — so a caller cannot slip a valuation into a record that is supposed to state transitions and let a reader derive worth.
This is the same rule the estate keeps for every derived figure: a value that could be asserted is a value a caller could fake, so it is computed at read from a rate or price the record does not hold, never stored. A projection refuses rather than trims — it names the forbidden fields, so a field added later cannot leak in through a spread.
The effect is a record that says what happened and refuses to say what it is worth, leaving the second to whoever holds the prices. That separation is what keeps the ownership log a record of facts rather than a marketing document about their value.
Source: FlashyOS — a projection refuses rather than trims