lifeos handbook
Concepts

Envelopes

Claims on money you already have, not accounts money moves into.

An envelope is virtual. Filling one moves no money and touches no account balance; it records a claim against the pooled balance you already hold (ADR-0012).

Why not real accounts

Because the money is not really in separate places. Making envelopes into accounts would mean every fill is a transfer that can fail, every spend needs the right envelope selected before it can be recorded, and the ledger fills with movements that never happened in the world.

Virtual envelopes change one thing instead: what the app is willing to call free to spend.

free to spend  =  spendable balances  −  what the envelopes have claimed

Two kinds

  • Commitments — money already spoken for. Rent due on the 5th, a repayment plan, school fees. These are what the allocation wizard treats as untouchable.
  • Goals — money you are gathering toward something. A laptop, a trip.

A project does not get an envelope. Envelopes model commitments and goals, and a project is neither.

They feed the allocation wizard

The wizard suggests where new income should go. Its promise — a savings suggestion never touches money rent needs — is only true if every obligation is visible to it. Active commitment envelopes with a due date inside the reserve window are exactly that visibility, which is why debt repayment plans were wired to envelopes rather than given their own path.

The movement log, and the cache that lies about the past

Envelope.cachedBalance answers what does this envelope hold now. Asked about a month that has already ended, it answers with today's number — so the month you actually set the rent aside would read as though you never did.

Every historical envelope figure is therefore derived from the movement log, never from the cached balance. A test pins it: fill an envelope last month, empty it this month, and last month must still report the fill.

On this page