Financial System — money + AI-usage economy
Plan-phase design (not built). Owner: Finance (planned unit — stood up when we move Plan → Build). Captures the principle that AI utilization is a first-class economy alongside money.
Principle
AI utilization is an economy unto itself. We run two parallel, closely integrated ledgers — a Money ledger and an AI-Usage ledger — sharing one interface and reconciled through a cross-rate.
The two ledgers
Money ledger
- Tracks: revenue, costs, budgets, spend approvals (subscriptions, tools, sponsorships, payouts).
- Unit: USD.
AI-Usage ledger
- Tracks: input/output tokens, requests, model, agent/unit, venture & phase, tool calls, cache hits, wall-clock.
- Units: tokens (derived: requests, compute-time).
Cross-rate (the integration)
A configurable $/unit rate (e.g. $ / 1M tokens, by model) converts AI usage
→ money so the two ledgers reconcile into a single “cost of work” view and a
per-venture / per-agent P&L (money + AI).
Data model
Both ledgers share the same 12-column transaction shape so they reconcile;
usd_equiv is the bridge (money rows carry the dollar directly, AI rows compute
it qty × rate from finance/rates.csv). The column order below is frozen —
it is the committed header row of each ledger CSV. Freeze it before multiple
authors transcribe, or the two ledgers drift in shape (knowledge: ledger-field
discipline). A row missing source, ts, or usd_equiv is a reliability
defect, not a minor gap.
transaction { id, ts, ledger: money|ai, unit_or_agent, venture, phase,
type, qty, unit, usd_equiv, source, note }
budget { scope: unit|venture|phase, scope_id, money_cap, ai_cap, period, note }
rate { model, usd_per_unit, unit, effective_from, note }
approval { id, ts, requestor, amount, scope, status, rationale }
The committed CSV header rows (source of truth for column order):
| File | Header row |
|---|---|
finance/ledger-money.csv |
id,ts,ledger,unit_or_agent,venture,phase,type,qty,unit,usd_equiv,source,note |
finance/ledger-ai.csv |
id,ts,ledger,unit_or_agent,venture,phase,type,qty,unit,usd_equiv,source,note |
finance/rates.csv |
model,usd_per_unit,unit,effective_from,note |
finance/budgets.csv |
scope,scope_id,money_cap,ai_cap,period,note |
finance/approvals.csv |
id,ts,requestor,amount,scope,status,rationale |
Spend-materiality threshold (Principal-approved 2026-06-01)
Finance auto-approves spend below the threshold and escalates to the Principal at or above it:
- One-time spend: auto-approve if under $50 (USD). At or above $50, Principal approval is required.
- Recurring spend: auto-approve if under $20/month (USD). At or above $20/month, Principal approval is required.
- Non-USD / credit spend (e.g. Vercel deploy credits, token spend) converts
to USD via the cross-rate (
finance/rates.csv) before the threshold is applied.
This is the numeric boundary for the “never self-approve material spend”
guardrail. It lives canonically here and is recorded as a policy row in
finance/budgets.csv (scope org, scope_id materiality-threshold).
Budget approach — track-first (Principal-approved 2026-06-01)
No hard budget caps are set yet, and that is deliberate, not missing. The org stands up the ledgers and logs real actuals first — Vercel deploy credits (ADR-0009), AI token spend (GR-1 top-tier models), Neon Postgres (ADR-0014) — and sets hard caps after ~1 month of accumulated data (review target: ~2026-07). Until then:
finance/budgets.csvcarries no money/AI caps (the materiality-threshold row is a policy marker, not a spend cap).- “Burn vs. budget” reporting states “no cap on file — track-first phase” rather than inventing a denominator.
- The spend-materiality threshold above is the only active spend control during the track-first phase.
Reporting
- Daily (in the PA’s day’s report → Notion): spend + AI usage, burn vs budget.
- Per-venture P&L (money + AI), per-agent/unit usage, model mix.
Governance
- Finance owns this; budgets are approved by the Principal; spend approvals follow the staffing/finance policies.
- AI-usage data is operational — it never contains the Principal’s personal information (PA-only; see the confidentiality policy).
Status
Track-first build, 2026-06-01. The five finance/ ledger files are stood up
with frozen header rows only (no fabricated data) and the Principal-approved
spend-materiality threshold recorded as a policy row in finance/budgets.csv.
Real actuals are logged as they accrue; hard budget caps are deferred ~1 month
(see Budget approach — track-first). Later: a Finance module in the ERP (see
docs/erp-plan.md).