Approvals

Some treasury records need someone other than their author to sign them off: budget lines always do, and expenses do above a threshold. Approvals are signed records. Each signature stores who signed, with which roles, when, and a fingerprint (a sha256 hash) of exactly what they saw. A signature cannot be edited or deleted afterwards, not even by an owner.

Open Treasury → Approvals to see the requests waiting for a decision. Use the status filter to see approved, rejected or withdrawn requests.

Requesting approval

  • Budget lines: choose Propose for approval on a planned or revised line. You can also tick Propose for approval now while adding a line.
  • Expenses: an expense that a policy covers waits for approval as soon as you record it.

The request freezes the subject: its amount, description, counterparty and version. If the line is edited afterwards, the request can no longer be approved, and the page says the subject has changed. Propose the new version instead.

The requester may Withdraw a budget line request while it is pending. To withdraw an expense, void it.

Signing

Finance stewards (and owners) see Approve and Reject on each request they may sign. Rejecting needs a reason. When you cannot sign, the request says why. The rules, enforced by the app and again by the database:

  • Not your own request. The person who asked cannot approve it.
  • One signature per person.
  • Two people above the two-person threshold. A request above the policy's two-person amount needs two different approvers.
  • A person, not an automation. Only a signed-in member can approve; AI tools and integrations never can.
  • Not while conflicted. If you have a live recusal on the budget line or its initiative, or a related-party flag names you, you cannot sign.
  • Only what you saw. If the subject changed after the request, the request cannot be approved.

Each signature on a request shows its signer, time and the first characters of its record hash.

When a budget line or expense names a counterparty, the app checks the declared interests in the conflict register. If a member declared an interest in a body with the same name (ignoring case and punctuation), the request shows a related-party flag naming that member, and that member cannot sign. Flags are checked again when a request is created and whenever someone signs.

A finance steward can Clear a flag that is a false match, with a reason. The reason is kept in the audit log.

Approval policies

Owners set the policies under Treasury → Policies. Everyone else can read them. A policy says:

  • what it applies to: budget lines or expenses;
  • optionally, one category, such as "Travel";
  • the currency and the minimum amount from which it applies;
  • who may approve: one or more roles, usually finance steward;
  • optionally, a two-person amount, above which two approvers are needed.

When several policies match an amount, the one with the highest minimum wins; on a tie, a category policy beats one for any category. When no policy matches, a budget line still needs one finance steward, and an expense needs no approval.

Retiring a policy stops it applying to new requests. Requests already made keep the rules they were made under.