# Autonomy and spend

Autonomy decides whether Connect **may** act; the plan allowance and the workspace budget decide how much it **can**. The two compose as an intersection, never as an override: an `autonomous` channel with a spent allowance sends nothing, and raising the mode does not buy capacity. A refusal for spend is recorded with that reason, distinctly from a compliance one.

- **Status:** Available
- **Audience:** both
- **In the app:** #/autonomy, #/billing, #/needs-you
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/autonomy/spend-context/

## Two controls, one outcome

| Autonomy | Allowance | What happens |
|---|---|---|
| `autonomous` | Available | The action goes out |
| `autonomous` | Spent | Nothing is sent; the refusal names the limit |
| `ask_before_send` | Available | Held for a decision, then sent on approval |
| `ask_before_send` | Spent | The approval is recorded and the send waits; the item stays until it goes |
| `draft_only` or `off` | Either | Nothing is sent, and capacity is not the reason |

The fourth row is the one worth reading twice. Approving something the workspace cannot currently send does not fail and does not vanish: the decision is kept, and the action waits for capacity. That is why an approval queue can look worked-through while the sent folder stays still.

## The daily ledger

A customer workspace's use is bounded by its plan's allowances, counted in a ledger that resets. The Owner's own workspace has no plan and no such gates at all — that is the single commercial difference between the two audiences, and it is not a difference in what the feature can do. Everything else about autonomy behaves identically on both sides.

Plan and Usage is where the day's position is visible. Read it before loosening a channel: moving email from `ask_before_send` to `autonomous` usually raises the number of sends per day, and the ledger is what that increase runs into.

> **Note** An allowance refusal is temporary by nature — it clears when the ledger resets. A compliance refusal is not. Both appear in the decision log; reading the reason is what tells you whether the fix is waiting, changing the plan, or something else entirely.

## Calls are priced individually

Voice is the channel where capacity is felt per action rather than per day. A call is priced on the audio it uses and metered against the workspace's AI quota, and a call the budget cannot cover does not happen. On a voice channel set to `autonomous` this is the gate most likely to produce a refusal you did not expect, because nothing about the recipient or the message is wrong.

Two practical consequences. Long calls cost more than short ones, so a channel that has been reworded to answer briefly goes further on the same budget. And a queue of due call-backs approved all at once can exhaust the budget partway through — which is visible as some calls placed and the rest refused, in the order they were attempted.

## Reading a stoppage correctly

**Everything stopped at once, mid-morning** — Look at the allowance first. A ledger that hits its limit stops every channel at once, which reads like an outage and is not one.
**One channel stopped, the others continue** — Not the ledger — that is per workspace. Look at the provider for that channel, or the channel's own mode.
**Calls stopped but email continues** — The AI budget for voice rather than the daily send limit. The refusal reason distinguishes them.
**Nothing at all is happening, including drafting** — Not a spend limit. Check whether Connect is switched on — a stopped runtime refuses nothing because it evaluates nothing.

## Questions

### Does raising a channel to `autonomous` increase my allowance?

No. The two are independent controls, and the mode is the one about permission. Loosening it typically increases the number of sends a day, which means the limit is reached sooner rather than later.

### If the allowance runs out, do I lose the replies Connect had written?

No. Work already prepared stays where it is, and an approval given during a stoppage is kept and acted on when capacity returns. The item stays in the queue until it actually goes.

### Does the Owner workspace have the same limits?

No — the Owner has no plan and no such gates. Every other part of autonomy is the same on both sides, over one implementation; only the commercial ceiling differs.

## Related

- [The gates that always apply](https://connectbyjbrh.com/docs/autonomy/explicit-gates/)
- [Autonomy for the Owner and for a customer](https://connectbyjbrh.com/docs/autonomy/autonomy-owner-tenant/)
- [The four autonomy modes](https://connectbyjbrh.com/docs/autonomy/modes/)
- [Usage and allowances](https://connectbyjbrh.com/docs/account/usage/)
- [The allowance is spent](https://connectbyjbrh.com/docs/troubleshooting/allowance-reached/)
- [The AI budget is spent](https://connectbyjbrh.com/docs/troubleshooting/budget-exhausted/)

## What this page is based on

- Connect source pack §1 — the commercial difference between the two audiences (`docs-source/sources/GENERAL.md`)
- Connect source pack §5 — autonomy and the audit trail
- Connect capability registry (`docs-source/facts.py`) — `daily_quota_refusal`, `billing_usage`, `voice_cost_metering`
- `backend/app/metering.py`, `backend/app/tenant_entitlements.py`, `backend/app/voice_cost.py`
