Skip to content

SOP-026 — Spend approval

Guide

<!-- last-reviewed: 2026-06-01 · owner: Finance (Finance Director) -->

SOP-026 — Spend approval

SOP · owner: Finance (Finance Director). Layer: SOP/Runbook (docs/canon.md). Field meanings live in docs/financial-system.md — not restated here. Track-first note (2026-06-01): finance/budgets.csv, finance/approvals.csv, and the money ledger now exist with frozen headers (finance/). No hard budget caps are set yet (track-first, by Principal decision); the spend-materiality threshold is the active control — see Materiality threshold below. This procedure is executable today.

Interface Contract

  • Inputs: spend request ← from <requesting agent/unit> · trigger: spend requested
  • Inputs: material-spend decision ← from Principal · trigger: spend approved
  • Outputs: approval decision → to <requesting agent/unit> · trigger: spend approved
  • Outputs: material-spend escalation → to Principal · trigger: spend requested
  • Outputs: approval log + money ledger → to Archivist · trigger: artifact approved
  • Handoff trigger (in): a requesting agent/unit submits a spend request, or the Principal returns a decision on an escalated material spend
  • Handoff trigger (out): the spend is approved (or escalated) and recorded in finance/approvals.csv
  • Definition of Done before handoff:
    • [ ] Budget scope checked in finance/budgets.csv (or missing-budget flagged)
    • [ ] Decision + rationale recorded in finance/approvals.csv (append-only)
    • [ ] Money ledger updated once the spend is confirmed (not merely approved)
    • [ ] Material spend (above the Principal-set threshold) escalated, not self-approved
    • [ ] Learnings captured to docs/knowledge/ if the request surfaced one
    • [ ] Files handed to the Archivist (0 drift)

Proposed new triggers (spend requested) — reported to Operations, not added inline; spend approved already exists in docs/handoff-triggers.md. Until spend requested is registered this edge is a stub.

Materiality threshold (Principal-approved 2026-06-01)

Finance auto-approves below the threshold and escalates to the Principal at or above it. Canonical statement: docs/financial-system.md; recorded as the materiality-threshold policy row in finance/budgets.csv.

Spend kind Auto-approve (Finance Director) Escalate to Principal
One-time under $50 (USD) at or above $50
Recurring under $20/month (USD) at or above $20/month

Non-USD / credit spend (Vercel deploy credits, token spend) converts to USD via the cross-rate (finance/rates.csv) before the threshold is applied. A spend that is below the threshold but still looks wrong is escalated anyway (GR-3 — never silently approve a spend that looks wrong).

Purpose

Approve or escalate a request to spend money so the Principal’s money is only committed within budget tolerance and with a stated view on whether the spend is worth it — never silently and never self-approved at or above the materiality threshold.

When to use

Whenever any agent/unit wants to spend money — a subscription, a tool fee, a sponsorship, a payout — and asks Finance to approve it. Also when the Principal returns a decision on a previously escalated material spend.

Flow

flowchart LR
  A["Receive request"] --> B{"Budget line<br/>exists?"}
  B -->|no| F["Flag missing budget<br/>→ SOP-027"]
  B -->|yes| C{"Headroom &amp;<br/>justified?"}
  C -->|yes, &lt; threshold| D["Approve +<br/>record"]
  C -->|over budget /<br/>≥ threshold / looks wrong| E["Escalate to Principal<br/>with a recommendation"]
  D --> L["Update money ledger<br/>when confirmed"]
  E -->|decision returns| D
  classDef s fill:#1d4ed8,color:#fff,stroke:#1e3a8a
  classDef d fill:#0f766e,color:#fff,stroke:#134e4a
  class A,F,D,E,L s
  class B,C d

Text fallback: receive the request → does a budget cap exist for the scope? (track-first phase: usually no cap on file — note it and proceed on the materiality threshold rather than blocking) → is it justified, and is it below the materiality threshold? (yes and below → approve and record; at-or-above threshold, over an existing cap, or looks wrong → escalate to the Principal with a recommendation) → when the spend is confirmed, update the money ledger.

Steps

  1. Receive the request — identify what is bought, estimated cost, requestor, the venture/phase it serves, and whether a budget line covers it.
  2. Check the budget — look up the scope in finance/budgets.csv. In the track-first phase no hard caps are set (deliberate, by Principal decision), so most scopes have no cap line — note “no cap on file — track-first” and rely on the materiality threshold; do not block a sub-threshold spend for want of a cap. If a cap does exist for the scope, check headroom against it.
  3. Assess the spend — does the cost make sense for what is bought? Is there a cheaper alternative for the same need? State your view, not just the numbers.
  4. Approve or escalate — justified and below the materiality threshold (one-time <$50, recurring <$20/mo; non-USD converted via the cross-rate) → approve. At/above the threshold, over any existing cap, or wrong-looking → escalate to the Principal with a recommendation.
  5. Record the decision — append to finance/approvals.csv (date, amount, scope, status, rationale). Once approved, the row is immutable.
  6. Update the money ledger — when the spend is confirmed (not merely approved), append to finance/ledger-money.csv tagged unit/venture/phase/type.
  7. Hand off the updated files to the Archivist; capture any learning.

Roles / approvers

Run by the Finance Director. Below the materiality threshold (one-time <$50, recurring <$20/mo), the Finance Director approves. At/above the threshold, over an existing cap, or where judgment is uncertain, the Principal approves. The Financial Analyst may prepare the budget-check data but does not approve spend.

Guardrails

  • Never self-approve material spend — record every approval; escalate at/above the Principal-set threshold (one-time ≥$50, recurring ≥$20/mo; non-USD converted via the cross-rate first).
  • Track-first, not phantom-budget paralysis — in the track-first phase the absence of a cap is expected and does not block a sub-threshold spend; note “no cap on file” and proceed on the threshold. (A cap that does exist must not be exceeded without escalation.)
  • Approvals are immutable once recorded; corrections are new rows.
  • Never touch the Principal’s personal financial information — PA-only.
  • Do not restate docs/financial-system.md field meanings — link to it.

Job aid: JA-026-spend-approval.md. See also: SOP-027 (budget & cross-rate) · docs/units/finance/charter.md · docs/handoff-triggers.md.