Offers and pricing
How a Product becomes Offers with Prices, what a $0 Offer grants, and how Prices change and get tested without misleading a buyer.
An Offer is a Product, under a Brand, at a Price, on terms, made by a Startup. The Product says what a Customer gets; the Offer says what it costs and on which conditions.
One Product, many Offers
A Product carries a promise. An Offer makes it commercially specific: a Price, the terms, the Entitlements acceptance grants, and the Motion it sells in. Buyers differ in volume, in risk, and in how they pay, so one Product usually needs several Offers.
shipnote.dev turns a repository's merged changes into release notes. It has one Product and four Offers.
| Offer | Price | Grants |
|---|---|---|
free | $0 | 50 notes a month, one repository |
per-note | $0.05 per note | any volume, billed monthly |
team | $39 a month | 2,000 notes, ten repositories, shared keys |
enterprise | by Quote | committed volume, an annual invoice, a signed Agreement |
How an Offer is priced never changes what its Product is. An Agent priced per run is still Software. A result warranted under an Outcome Contract makes the Product a Service, whatever the Price looks like.
The shape of a Price
A Price is the amount, currency, unit, and tiers of an Offer, embedded in it. The unit names what is counted: a call, a note, a seat, a month, an accepted outcome. Tiers change the amount as the count grows, either for every unit or only for the units inside each band.
The best unit is the one the Customer already counts. A contract-review Agent prices per contract, not per token, because a contract is what its buyer budgets for. The founding Hypothesis anchors the amount against what the buyer pays today.
A usage Price reads from a Meter, which turns usage Events into Entries exactly once. A retried call never bills twice. Zero is a Price, and it follows every rule any other Price follows.
The $0 Offer
A $0 Offer is an Offer like any other. Accepting it makes a Customer, records Consent where the Offer asks for it, and grants Entitlements bounded by a Limit. shipnote.dev's free Offer grants 50 notes a month.
A call outside the caller's Entitlements gets a 402 reply that names the Offer covering the call and its Price. A person sees that Offer on the pricing page. An Agent accepts it through the API and retries the same call, with no signup and no human in between.
Acceptance and Entitlements
The accept Verb records that a party takes an Offer, and the party becomes a Customer. Acceptance pins the Offer's current Version. A one-time Offer becomes an Order; a recurring Offer becomes a Subscription.
An Entitlement is what the Customer gets: a Verb on a Noun in its Tenant, optionally bounded by a Limit. A Permission has the same shape but comes from a Role. Buying the team Offer lets a Customer generate notes; its own Roles decide which of its people may call the API.
Every Interface accepts an Offer the same way:
Accept the offer “Grain-free kibble, 12 lb”.
curl -X POST https: //api.sb/ petpantry.shop/ offers/ offer_1/ accept \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"party": "Lena Fischer"}'
import { $ } from 'startup-builder'
const { customer, offer } = await $.Offer.accept({ offer: 'offer_1', party: 'Lena Fischer' })
npx startup-builder do Offer.accept --json '{"offer": "offer_1", "party": "Lena Fischer"}'
{
"name": "do",
"arguments": {
"code": "return await $.Offer.accept({ offer: 'offer_1', party: 'Lena Fischer' })"
}
}
Changing a Price
A new Price applies to new buyers only. Existing Customers keep the Version they accepted until they switch. The withdraw Verb closes an Offer to new Customers, and every Order and Subscription on it stays in force.
Copy, pages, and packaging run as Experiments: variants against a Hypothesis and one Metric, with the threshold fixed before the start. Price is the exception. Two people never see two Prices for the same Offer in the same market.
A Price is tested another way: a sibling Offer at the new Price, a second market, or a switchback. In a switchback, every buyer sees one Price this week and the other Price next week. The Pricing Process runs each test and records the winner as a Decision.
The cheapest pricing evidence comes before delivery. A reserve page at the real Price counts who pays a deposit. A deposit is a commitment; a compliment on a call is an opinion.
Who the Offer is for
The Motion of an Offer records who buys and who acts. In b2a2b, a business is the Customer and an Agent calls the API for it. The Offer names both, so terms, Limits, and receipts reach the party that owes the money.
An Offer can also sell another party's Product. It then names the merchant of record and whether the Startup earns as principal or as agent. One checkout never hides who holds the promise.
Next
- Earning models: how accepted Offers turn into revenue.
- Selling to agents: the 402 reply, quotes, and Agent buyers in depth.
- Selling: carrying a buyer to acceptance.