# Offer definition

URL: /code/project-structure/offer-definition · Id: `convention:offer-definition`

> An Offer definition puts a Product under a Brand at a Price, with its terms, its Motion, and its Personas.

An [Offer](/business/nouns/offer) definition puts a [Product](/business/nouns/product) under a [Brand](/business/nouns/brand) at a [Price](/business/nouns/price), with its terms, its [Motion](/business/nouns/motion), and its [Personas](/business/nouns/persona).

| Property | Value |
| --- | --- |
| Path | `offers/[offer].mdx` |
| Holds | [Offer](/business/nouns/offer) |
| Kind | file |
| Leaders | db-first, git-first |
| Team | [Sales Team](/agents/sales) |
| Written by | [Change.merge](/business/nouns/change/merge) |
| Compiled by | [SalesBuilder](/code/builders/sales) |

### Example
`offers/monthly-close.mdx` in a Startup repository.

```mdx title="offers/monthly-close.mdx"
---
price: { amount: 499, currency: USD }
interval: month
terms: Books done within three business days of month end, tied out to the bank.
trial: { days: 14 }
---
```

### Props
The frontmatter keys the file takes. The body is its prose.

| Prop | Type | Required | Description |
| --- | --- | --- | --- |
| `price` | `money` | Yes | The amount and currency it charges each interval. |
| `interval` | `string` | No | How often it bills: `once`, `day`, `week`, `month` or `year`. |
| `terms` | `text` | No | The conditions the Customer accepts, refund rights included. |
| `trial` | `json` | No | The free trial each new Customer starts with: `days`, and `card` true to take a card up front. |
| `seats` | `string` | No | How a per-seat Price counts: `manual` or `members`. |
| `atBound` | `string` | No | What a call past an Entitlement’s Limit gets: `stop`, `overage` or `upgrade`. |
| `credit` | `money` | No | The prepaid credit each purchase issues. |
| `availableFrom` | `datetime` | No | When it can first be bought. |
| `availableUntil` | `datetime` | No | When it can last be bought; existing Subscriptions continue. |
| `privateTo` | [Party](/business/nouns/party) | No | The one Party who may accept it; no pricing page lists it. |
| `license` | `string` | No | For records it sells: `internal`, `display` or `redistribute`. |
| `attribution` | `text` | No | The credit line a buyer shows wherever the records appear. |
| `uptime` | `json` | No | The monthly uptime it promises, and the credit below each level. |

### Generates
[SalesBuilder](/code/builders/sales) compiles it into these records, Verbs and routes.

| Kind | What |
| --- | --- |
| Records | [Offer](/business/nouns/offer), [Price](/business/nouns/price) |
| Verbs | [Offer.publish](/business/nouns/offer/publish) |
| Routes | `/{ns}/offers/{offer}` |