URL: /capabilities/services · Id: `page:/capabilities/services`

# AI-delivered Services: you pay for the outcome you accept

> Order the outcome, such as held first calls or a ranked page: agents do the work, and you pay for each outcome you accept.

[Order](https://startupbuilder.dev/business/nouns/order) the outcome, such as held first calls or a ranked page: agents do the work, and you pay for each outcome you accept.

- **Deepens:** [`noun:service`](https://startupbuilder.dev/business/nouns/service), [`noun:outcome-contract`](https://startupbuilder.dev/business/nouns/outcome-contract), [`product-template:services-as-software`](https://startupbuilder.dev/products/templates/services-as-software), [`capability:demand-generation`](https://startupbuilder.dev/systems/integrations/upstreams#demand-generation), [`capability:sales-closing`](https://startupbuilder.dev/systems/integrations/upstreams#sales-closing)
- **Services:** [5](#services)
- **Billed:** [Per accepted outcome](#accepting)
- **First call:** [`Meeting.deliver`](/capabilities/reach-out/booked-first-calls)

```text title="Run it · Ask"
Deliver 12 held first calls with US property managers this month, $90 each, and show me the plan first.
```

```ts title="Run it · SDK"
import { $ } from 'startup-builder'

const result = await $.try.Meeting.deliver({ icp: 'US property managers with 20 to 400 units', titles: ['Director of Operations', 'COO', 'Owner'], target: 12, budget: { amount: 1080, currency: 'USD' } })
```

```json title="Run it · Response"
{
  "mode": "try",
  "stored": false,
  "plan": [
    {
      "step": 1,
      "does": "Build the month’s lists",
      "verb": "Audience.build",
      "function": "code"
    },
    {
      "step": 2,
      "does": "Write and send personal first touches",
      "verb": "Prospect.reach",
      "function": "agentic"
    },
    {
      "step": 3,
      "does": "Answer every reply within 5 minutes",
      "verb": "Lead.respond",
      "function": "agentic"
    },
    {
      "step": 4,
      "does": "Book the call",
      "verb": "Meeting.book",
      "function": "code"
    },
    {
      "step": 5,
      "does": "Brief you before each call",
      "verb": "Deal.brief",
      "function": "agentic"
    },
    {
      "step": 6,
      "does": "Read who attended",
      "verb": "Collection.query",
      "function": "code"
    },
    {
      "step": 7,
      "does": "You confirm the budget owner on the call",
      "verb": "Lead.qualify",
      "function": "human"
    }
  ],
  "contract": {
    "done": "Meeting.held",
    "bills": {
      "usd": 90,
      "unit": "held meeting"
    },
    "target": "12 held meetings a month, fixed when you order.",
    "credits": "No-shows, and any meeting you disqualify within 48 hours with a reason.",
    "remedy": "Continued work at no charge until the target is met: more lists, more first touches and more follow-ups, inside the same sending limits."
  },
  "skipped": []
}
```

The reference for every call on this page is [Compose your own](/code/compose).

## A Service bills the outcome, never the effort
A [Service](/capabilities/how-calls-compose) promises the outcome under an [Outcome Contract](https://startupbuilder.dev/business/nouns/outcome-contract). [Where done lives](https://startupbuilder.dev/products/four-kinds) draws the line. An agent task is graded on its output. A Service holds the work until the outcome arrives.

The warranty test decides which you are buying. A first email is graded work. A held meeting with a budget owner is an outcome. Each Service names its done Event and its price per accepted unit. It also names what is credited, and the remedy for a short month.

| Term | What it settles | Booked first calls |
| --- | --- | --- |
| Done | The Event that counts one unit | A held first call at an account that fits your customer sentence, with a person whose title matches, and a budget owner confirmed on the call. Counted by `Meeting.held`. |
| Billed | What one accepted unit costs | $90 a held meeting |
| Target | What the month owes | 12 held meetings a month, fixed when you order. |
| Credited | What is never billed | No-shows, and any meeting you disqualify within 48 hours with a reason. |
| Remedy | What happens on a short month | Continued work at no charge until the target is met: more lists, more first touches and more follow-ups, inside the same sending limits. |
| Evaluator | Who decides done | Code reads `Meeting.held` from the calendar and checks the account and title against your sentence; you confirm the budget owner. |

## Each Service warrants an outcome you can count
Each is hub [Services-as-Software](https://startupbuilder.dev/products/templates/services-as-software). Agents do the work, and the contract names any step a person takes. Each is built from the agent tasks and Workflows it orders, in your own accounts.

[Demand generation](/capabilities/find-customers/demand-generation) deepens the [Capability](https://startupbuilder.dev/business/nouns/capability) `demand-generation`. It runs your strategy's Plays and reads revenue back to each one. [Sales closing](/capabilities/convert-visitors/sales-closing) deepens `sales-closing`. A commissioned closer takes a qualified lead to a signed order.

| Service | Done when | Billed | Built from | Plays that order it |
| --- | --- | --- | --- | --- |
| [Ranked page](/capabilities/make-content/ranked-page) | The page ranks in the top 20 on Google Search for its term, in its locale, within 120 days of going live. | $25 a ranked page | [Keyword opportunity map](/capabilities/research-demand/keyword-opportunity-map), [Answer page per question](/capabilities/make-content/answer-pages), [Index the site](/capabilities/get-indexed/index-the-site) | [Answer engine optimization](/plays/aeo), [Category hubs](/plays/category-hubs), [Editorial SEO](/plays/editorial-seo), [Programmatic SEO](/plays/programmatic-seo), [Switch kit](/plays/switch-kit) |
| [Sales closing](/capabilities/convert-visitors/sales-closing) | A signed order from a qualified lead you handed over, its first payment collected and past the 30-day refund window. | $268.20 a signed order on the $1,788 plan | [Account brief](/capabilities/reach-out/account-brief), [Inbound routing](/capabilities/convert-visitors/inbound-routing) | [Closer handoff](/plays/closer-handoff), [Data residency](/plays/data-residency), [Paid pilot](/plays/paid-pilot), [Risk-reversal offers](/plays/risk-reversal-offers), [Trust pack](/plays/trust-pack), [Written references](/plays/written-references) |
| [Booked first calls](/capabilities/reach-out/booked-first-calls) | A held first call at an account that fits your customer sentence, with a person whose title matches, and a budget owner confirmed on the call. | $90 a held meeting | [Build a verified list](/capabilities/find-customers/build-a-verified-list), [Personal first touch](/capabilities/reach-out/personal-first-touch), [Answer every inbound](/capabilities/convert-visitors/answer-every-inbound), [Account brief](/capabilities/reach-out/account-brief) | [Benchmark rows](/plays/benchmark-rows), [Cold email](/plays/cold-email), [LinkedIn outbound](/plays/linkedin-outbound), [Proof-of-work outreach](/plays/proof-of-work-outreach), [Warm intros](/plays/warm-intros) |
| [Demand generation](/capabilities/find-customers/demand-generation) | A qualified lead: a person at an account that fits, whose title matches, who asked for a call or a trial, with the Play that sourced it recorded. | $40 a qualified lead | [Personal first touch](/capabilities/reach-out/personal-first-touch), [Answer threads](/capabilities/publish-and-post/answer-threads), [Directory submissions](/capabilities/earn-first-links/directory-submissions), [Answer every inbound](/capabilities/convert-visitors/answer-every-inbound), [Inbound routing](/capabilities/convert-visitors/inbound-routing), [Weekly readout](/capabilities/measure/weekly-readout) | [Cold email](/plays/cold-email), [Community answers](/plays/community-answers), [Directory listings](/plays/directory-listings), [Launch sites](/plays/launch-sites), [Warm intros](/plays/warm-intros) |
| [Verified list with a bounce warranty](/capabilities/find-customers/verified-list) | A contact at an account that fits, at the right company, whose address checks valid and does not push the list past 2% bounces at first send. | 4¢ a contact | [Build a verified list](/capabilities/find-customers/build-a-verified-list) | [Account ads](/plays/account-ads), [Buying committee](/plays/buying-committee), [Cold email](/plays/cold-email), [Show up in person](/plays/field-presence) |

A person performs a step in [Sales closing](/capabilities/convert-visitors/sales-closing) and [Booked first calls](/capabilities/reach-out/booked-first-calls), because the stakes are high; every other step is an agent's or code's.

## One worked month, billed per held meeting
November, Leaseline’s first full month, ordered at a target of 12. 12 meetings were booked, 10 were held, and 9 were accepted, so the month bills 9 × $90 = $810.

The 2 no-shows and the 1 meeting you disqualified bill nothing. The target was 12, so the work continues into the next month at no charge until 3 more are held.

Two warmed inboxes at 25 a day send about 1,000 first emails in 20 weekdays. Then 3.4% reply, 4 in 7 replies are positive, and 60% of those book. [Planning estimate](/strategy/numbers#assumptions).

## Each step names its doer and its checker
Each step is a Verb that runs as a [Function](https://startupbuilder.dev/business/nouns/function): `code`, `agentic` or `human`. The doer is never the checker. Each checker names what it reads, and the weakest check sets the assurance.

[Booked first calls](/capabilities/reach-out/booked-first-calls) runs these steps each month. A review pass is the checker of the step it reviews, never a row of its own.

| Step | Function | Doer | Checker | Assurance |
| --- | --- | --- | --- | --- |
| 1. Build the month’s lists | `code` | Code | Code reads each address’s check result and its domain against the account’s own before the row joins | `measured` |
| 2. Write and send personal first touches | `agentic` | The [SDR](/capabilities/agents/sdr) agent | A second model checks every fact in each message against the row before it sends | `graded` |
| 3. Answer every reply within 5 minutes | `agentic` | The [SDR](/capabilities/agents/sdr) agent | A `Lead.created` read-back for every routed reply, timed from the reply | `measured` |
| 4. Book the call | `code` | Code | A `Meeting.booked` read-back from both calendars | `measured` |
| 5. Brief you before each call | `agentic` | The [AE](/capabilities/agents/ae) agent | A second model checks each fact in the brief against its source | `graded` |
| 6. Read who attended | `code` | Code | The calendar’s attendance and the conference join log, read 15 minutes after the slot | `measured` |
| 7. You confirm the budget owner on the call | `human` | You, on the call | Code reads your qualification back onto the lead; silence for 48 hours accepts the meeting | `attested` |

## A person steps in where stakes are high
Oversight is the review the work needs, set by what the work is. The hub names five postures on [oversight](https://startupbuilder.dev/agents/how-agents-act/oversight). Each above `none` names its reason: `regulatory`, `high-stakes`, `physical` or `consumer-harm`.

Two Services are `performs-step` for `high-stakes`. You take each first call in Booked first calls. A commissioned closer gets each signature in Sales closing. A capability gap is never a reason.

You see the plan and its price before anything runs. Sends and posts go out within the limits you set; one approval rule on a class such as `send` makes every action in it wait for you, and going over a limit always asks. Your rules and limits together are a standing approval (a `Mandate`, set with `Mandate.authorize`).

| Posture | What the reviewing party does |
| --- | --- |
| `none` | Nothing beyond automated review |
| `spot-check` | Samples finished work after delivery |
| `review-on-exception` | Reviews what an Evaluator or a Guard flags |
| `approves` | Approves each output before it is delivered |
| `performs-step` | Does one step in person |

## You pay only for outcomes you accept
A Service bills only accepted units. You accept each one, or its window closes with no dispute. An agent's own claim of done never bills.

A month short of its target gets continued work at no charge until the target is met. A unit that fails after delivery is credited, such as a bounce past the allowance.

Each Service's card prices the calls inside it, so you see what the agents spent beside your bill. [Composition](https://startupbuilder.dev/products/composition) on the hub covers how cost and remedy roll up.

## Order one in one call
The Service's own Verb is the short form of [`Order.place`](https://startupbuilder.dev/business/nouns/order/place) on its fixed offer. Both return the same [order](https://startupbuilder.dev/business/nouns/order), and you watch its Events either way.

```ts
import { $ } from 'startup-builder'

// The Service Verb: the plan and its price, in try mode
const plan = await $.try.Meeting.deliver({ icp: 'US property managers with 20 to 400 units', titles: ['Director of Operations', 'COO'], target: 12 })

// The same order, placed on its fixed Offer: billed per held meeting you accept
const order = await $.Order.place({ offer: 'offers/booked-first-calls', quantity: 12 })

// Count what the month delivered
on.Meeting.held((meeting) => console.log(meeting.account, meeting.budgetOwner))
```

## Plays order Services, and read their done Event
A [Play](/plays) orders a Service, then reads its done Event against the Play's [Metric](https://startupbuilder.dev/business/nouns/metric). [Cold email](/plays/cold-email) orders Booked first calls and counts `Meeting.held`. [Closer handoff](/plays/closer-handoff) orders Sales closing and counts `Order.paid`.

When the Metric stalls, the Play's agent changes the order, never the contract. It narrows the list, tests a new first line, or switches Plays.