Cost per Action
How an Action's spend is measured, kept inside its Limits, rolled up per Verb, Offer and Customer, and turned into a floor under every Price.
Every Action settles what it cost: compute, model tokens, outside calls and human minutes. Costs roll up per Verb, Offer and Customer, and the rollup sets the floor under every Price.
What an Action costs
An Action that costs anything posts a Cost to the Startup it ran in. Cost.action names the Action, so every dollar traces to the call that spent it.
| Kind | Settles |
|---|---|
model | Model tokens, priced per token |
upstream | Calls to outside data and execution services, misses included where they bill |
human | Minutes a Human spends on a Task, an Approval or a rescue |
platform | Compute, storage, messages and the platform's share |
shared | A slice of a cost many Startups share, split by the cost.allocation Policy |
A human minute costs the same whether a founder or an operator spends it. A capability bought from a sibling posts at its transfer price.
Reserve, settle, release
An outside call's price is unknown until it settles: a routed lookup can bill a miss, and a video job bills by length. So a priced call reserves first: Action.reserved holds the most it can cost against its Limits, billed misses included.
The Limit check reads the reservation, never the expected price. Fifty agents asking for a $6 video job each reserve $6, so a $100 Limit admits 16 of them at once. Concurrent calls never commit more than the Limit allows.
The call then settles at its actual cost, and the unused reservation is released at once. Each billed attempt posts its own Cost, numbered in Cost.attempt.
| Outcome | Records |
|---|---|
| Settles under the reservation | The actual cost; the rest is released |
| Settles over the reservation | The full amount, with the excess in Cost.overrun; an overrun past a Limit opens an Approval |
| Fails | No Cost |
| Declined by the upstream | Only what the upstream bills, and the Action ends refused |
Rollups
Costs roll up along the records that caused them. An Action belongs to an Order, a Customer, an Offer or a Play, so three numbers fall out of one ledger.
Cost per Verb is the distribution of what each call of one Verb settled, with its median and 95th percentile. Cost per Offer adds the Verbs an Offer's Entitlements grant, weighted by use. Cost per Customer is what serving one Customer cost in a month, set beside what that Customer paid.
These rollups feed Contribution margin and every number in unit economics. Read them with Cost.list, filtered by Action, Verb or Startup.
The contribution floor
Offer.publish checks the Offer's Price against its Cost before any buyer sees it. It reads the Portfolio's observed Cost per Verb for each Entitlement the Offer grants. Once the Startup's own readings are large enough to trust, the floor shrinks toward them.
It computes contribution for the median Customer and for the 95th-percentile Customer, against the Startup's target margin in the Setting pricing.targetMargin.
| Median Customer | 95th-percentile Customer | Result |
|---|---|---|
| Clears the floor | Clears the floor | Publishes |
| Clears the floor | Below break-even | Publishes with a usage Limit at break-even |
| Below the floor | Any | Refused with below-contribution-floor, naming the floor Price |
A $29 plan whose heaviest users trigger $60 of model calls never goes Live as written. It publishes with a monthly usage Limit that keeps those users at break-even, or it is repriced.
Next
- Unit economics: margin, payback and lifetime value from these Costs.
- Real-time books: how each Cost posts as an Entry.