# Quotes

URL: /systems/quotes · Id: `system:quotes`

> Quotes drafts priced proposals of one or more Offers to one buyer within Limits and turns each accepted Quote into an Order.

[Quotes](/business/nouns/quote) prices proposals of one or more [Offers](/business/nouns/offer) for one buyer, inside the discount [Limits](/business/nouns/limit) a [Startup](/business/nouns/startup) sets. An accepted Quote becomes an [Order](/business/nouns/order) with nothing typed twice.

## Summary
| Part | This System |
| --- | --- |
| Group | Sales |
| Status | Beta: it works, and its Verbs may still change |
| Shelf | Reference: documented, never offered first |

You can ask:

- “Send this customer a quote”
- “Quote them the annual plan with a 10% discount”
- “Which quotes are about to expire?”
- “Turn the signed quote into an order”

## What you get
| Part | This System |
| --- | --- |
| Starts | Opt-in: it wakes with the Product Templates that need it. |
| Built from | [Database](/code/platform/capabilities/database), [Functions](/code/platform/capabilities/functions), [Workflows](/code/platform/workflows), [Event streams](/code/platform/event-streams) |

## Nouns it owns
| Noun | Definition |
| --- | --- |
| [Quote](/business/nouns/quote) | A Quote is a priced proposal of one or more Offers to one buyer, valid until a date, accepted into an Order. |

## Verbs
| Verb | Object | Approval | Event |
| --- | --- | --- | --- |
| [Quote.create](/business/nouns/quote/create) | [Quote](/business/nouns/quote) | None | `Quote.created` |
| [Quote.update](/business/nouns/quote/update) | [Quote](/business/nouns/quote) | None | `Quote.updated` |
| [Order.place](/business/nouns/order/place) | [Order](/business/nouns/order) | None | [`Order.placed`](/business/events/Order.placed) |
| [Quote.accept](/business/nouns/quote/accept) | [Quote](/business/nouns/quote) | Asks first; waits 1 business hour | [`Quote.accepted`](/business/events/Quote.accepted) |
| [Quote.expire](/business/nouns/quote/expire) | [Quote](/business/nouns/quote) | None | [`Quote.expired`](/business/events/Quote.expired) |
| [Quote.send](/business/nouns/quote/send) | [Quote](/business/nouns/quote) | Asks first; waits 1 business hour | [`Quote.sent`](/business/events/Quote.sent) |
| [Quote.decline](/business/nouns/quote/decline) | [Quote](/business/nouns/quote) | None | [`Quote.declined`](/business/events/Quote.declined) |
| [Quote.supersede](/business/nouns/quote/supersede) | [Quote](/business/nouns/quote) | None | [`Quote.superseded`](/business/events/Quote.superseded) |

## Events
| Direction | Event | How |
| --- | --- | --- |
| Emits | `Quote.created` | By [Quote.create](/business/nouns/quote/create) |
| Emits | `Quote.updated` | By [Quote.update](/business/nouns/quote/update) |
| Emits | [`Order.placed`](/business/events/Order.placed) | By [Order.place](/business/nouns/order/place) |
| Emits | [`Quote.accepted`](/business/events/Quote.accepted) | By [Quote.accept](/business/nouns/quote/accept) |
| Emits | [`Quote.expired`](/business/events/Quote.expired) | By [Quote.expire](/business/nouns/quote/expire) |
| Emits | [`Quote.sent`](/business/events/Quote.sent) | By [Quote.send](/business/nouns/quote/send) |
| Emits | [`Quote.declined`](/business/events/Quote.declined) | By [Quote.decline](/business/nouns/quote/decline) |
| Emits | [`Quote.superseded`](/business/events/Quote.superseded) | By [Quote.supersede](/business/nouns/quote/supersede) |

## States
The lifecycle of a [Quote](/business/nouns/quote):

| State | Meaning | Moves to |
| --- | --- | --- |
| `draft` (first) | Its lines and terms can still change, and the buyer has not seen it. | `sent` by [Quote.send](/business/nouns/quote/send) |
| `sent` | Presented to the buyer with its lines, total and payment terms frozen. | `accepted` by [Quote.accept](/business/nouns/quote/accept); `declined` by [Quote.decline](/business/nouns/quote/decline); `expired` by [Quote.expire](/business/nouns/quote/expire); `superseded` by [Quote.supersede](/business/nouns/quote/supersede) |
| `accepted` | Its one-time lines became an Order and its recurring lines a Subscription. | None: it ends here. |
| `declined` | The buyer refused it, with the reason in their words. | None: it ends here. |
| `expired` | It reached its `validUntil` date unaccepted and never converts. | None: it ends here. |
| `superseded` | A newer Quote on the same Deal replaced it; only the newest can be accepted. | None: it ends here. |

## Who operates it
| Part | This System |
| --- | --- |
| Accountable | [Sales Engineer](/agents/sales/sales-engineer) |
| Team | [Sales Team](/agents/sales) |
| Seat | A role agent holds it until a Human is seated. |
| Autonomy | `supervised` |
| Also calls its Verbs | [Sales Lead](/agents/sales/sales-lead) |

## Approvals and limits
| Verb | Rule | Detail |
| --- | --- | --- |
| [Quote.accept](/business/nouns/quote/accept) | A person says yes first | Waits 1 business hour |
| [Quote.send](/business/nouns/quote/send) | A person says yes first | Waits 1 business hour |

## Processes that use it
| Process | How it uses it |
| --- | --- |
| [Inbound sales](/workflows/processes/inbound-sales) | A step calls [Quote.send](/business/nouns/quote/send) |
| [Quoting](/workflows/processes/quoting) | A step calls [Quote.create](/business/nouns/quote/create) |

## Rail underneath
None.

## Views and dashboards
| View | Shows | Metrics |
| --- | --- | --- |
| The [Sales Engineer](/agents/sales/sales-engineer)’s view | The Metrics its accountable Role answers for. | [Technical win rate](/agents/sales#technical-win-rate) |

## Access
What each Access level may call here.

| Access level | May call |
| --- | --- |
| `owner` | Every Verb (11) |
| `admin` | All but 2 of 11: `Quote.accept`, `Quote.send` |
| `member` | All but 2 of 11: `Quote.accept`, `Quote.send` |
| `viewer` | Read only (2 of 11) |

## Import and export
None.

## Fees and pricing
None.

## Availability and limits
| Part | This System |
| --- | --- |
| Status | Beta: it works, and its Verbs may still change |

## Compliance notes
A discount over the Sales Engineer’s Limit waits for a yes; the terms on each Quote stay the founder’s.

Controls it carries:

- [Log completeness](/systems/trust-and-governance/controls/log-completeness)
- [Append-only records](/systems/trust-and-governance/controls/append-only-records)
- [Point-in-time recovery](/systems/trust-and-governance/controls/point-in-time-recovery)
- [Processing definitions](/systems/trust-and-governance/controls/processing-definitions)
- [Action completion](/systems/trust-and-governance/controls/action-completion)

## Related Systems
- [CRM](/systems/crm)
- [Billing](/systems/billing)
- [Agreements](/systems/agreements)

## Example
An [E2E managed service](/products/templates/managed-service) that runs support for online shops quotes a 40-seat retailer: a setup fee, a monthly service fee and an overflow rate. The [Sales Engineer](/agents/sales/sales-engineer) [Agent](/business/nouns/agent) gives 10% within its Limit; a request for 20% opens an [Approval](/business/nouns/approval) for the [Founder](/agents/founding/founder). The retailer accepts on the quote page, and the Order exists.