Spend management
Spend management controls money going out: budgets, bills, expenses and cards issued on Stripe, each paid against Limits and spend states.
Spend management controls money going out: Bills, Cards and receipts, each paid within a Mandate, its Limit and the Startup’s spend state. Cards are issued on Stripe, one per Worker and Mandate.
Summary
| Part | This System |
|---|---|
| Group | Finance |
| Status | Beta: it works, and its Verbs may still change |
| Shelf | Front: offered from a Startup’s first days |
You can ask:
- “Pay this bill”
- “Issue a card with a monthly limit”
- “Approve the bills waiting on me”
- “What did we spend on software this month?”
What you get
| Part | This System |
|---|---|
| Starts | On for every Startup at creation, with nothing to install. |
| Built from | Payment rails, Corporate cards, Workflows, Permissions |
Nouns it owns
| Noun | Definition |
|---|---|
| Bill | A Bill is an amount a Startup owes an outside Organization, coded to an account, approved within a Mandate, and paid by its due date. |
| Card | A Card is a payment credential a Startup issues to one Worker under one Mandate, with controls compiled from that Mandate. |
Verbs
| Verb | Object | Approval | Event |
|---|---|---|---|
| Mandate.spend | Mandate | Asks first; waits 1 business hour | Mandate.spent |
| Bill.create | Bill | None | Bill.created |
| Bill.approve | Bill | Asks first; waits 1 business hour | Bill.approved |
| Bill.pay | Bill | Asks first; waits 1 business hour | Bill.paid |
| Card.issue | Card | None | Card.issued |
| Transaction.attach | Transaction | None | Transaction.attached |
Events
| Direction | Event | How |
|---|---|---|
| Emits | Mandate.spent | By Mandate.spend |
| Emits | Bill.created | By Bill.create |
| Emits | Bill.approved | By Bill.approve |
| Emits | Bill.paid | By Bill.pay |
| Emits | Card.issued | By Card.issue |
| Emits | Transaction.attached | By Transaction.attach |
| Consumes | Transaction.failed | Moves Bill to approved |
| Consumes | Mandate.paused | Moves Card to frozen |
| Consumes | Mandate.revoked | Moves Card to closed |
| Consumes | Mandate.resumed | Moves Card to active |
| Consumes | Transaction.settled | Acts on it |
States
The lifecycle of a Bill:
| State | Meaning | Moves to |
|---|---|---|
received (first) | It arrived and is coded to an account, waiting for approval. | approved by Bill.approve |
approved | Accepted within the approver’s Mandate and scheduled for its due date. | paid by Bill.pay |
paid | Its amount is sent to the Organization and reconciled to Entries. | approved on Transaction.failed when the rail refused the Transaction that paid this Bill |
Its other Nouns with a lifecycle: Card.
Who operates it
| Part | This System |
|---|---|
| Accountable | Finance Lead |
| Team | Finance Team |
| Seat | A role agent holds it until a Human is seated. |
| Autonomy | assist |
| Also calls its Verbs | Operations Lead, Treasurer, Paid Media Manager |
Approvals and limits
| Verb | Rule | Detail |
|---|---|---|
| Mandate.spend | A person says yes first | Waits 1 business hour |
| Bill.approve | A person says yes first | Waits 1 business hour |
| Bill.pay | A person says yes first | Waits 1 business hour |
| Mandate.spend | Limit for the Treasurer | $2,000 per month |
| Mandate.spend | Limit for the Paid Media Manager | $500 per week |
Processes that use it
| Process | How it uses it |
|---|---|
| Procure | A step calls Card.issue |
| Expense approval | A step calls Transaction.attach |
| Payables | A step calls Bill.approve |
| Mail handling | A step calls Transaction.attach |
Rail underneath
Stripe’s products (Stripe’s names): Issuing, Payments.
| Noun | Stripe object | Source of truth |
|---|---|---|
| Card | Issuing Card (issuing.card) | The source of truth is db.sb, and Stripe holds a copy written from it. |
Views and dashboards
| View | Shows | Metrics |
|---|---|---|
| Spend | Bills waiting for a yes, Card spend against each Limit, and costs by category. | Fully loaded Cost |
| The Finance Lead’s view | The Metrics its accountable Role answers for. | Cost coverage, Contribution margin, Acquisition payback, Lifetime value, Contribution per outcome |
Access
What each Access level may call here.
| Access level | May call |
|---|---|
owner | Every Verb (11) |
admin | All but 3 of 11: Bill.approve, Bill.pay, Mandate.spend |
member | All but 3 of 11: Bill.approve, Bill.pay, Mandate.spend |
viewer | Read only (4 of 11) |
Import and export
| Connector | Mode |
|---|---|
| Stripe | Import: edits made in the tool arrive as Changes. |
Fees and pricing
A Card charge is spend, not a fee, and posts a Cost to its Task; paying a Bill passes Stripe’s outbound payment cost through at cost.
Availability and limits
| Part | This System |
|---|---|
| Status | Beta: it works, and its Verbs may still change |
| Limit | Each Card spends within the Limit it was issued with. |
Compliance notes
A Bill over the approver’s Limit waits for a yes; keeping the receipts stays the founder’s.
Controls it carries:
- One-way Action windows
- Task-bound access
- Permission decay
- Permission widening
- Input validation
- Action completion
- Purpose limitation
- Segregation of duties
- Bank detail changes
Related Systems
Example
A Directory of coworking spaces gives its Marketing Lead Agent a Card that spends $500 a month on ads. A $1,200 annual sponsorship exceeds the Limit and opens an Approval. When the latest Forecast turns default dead, the spend state moves to tight and the Card’s Limit halves to $250.