---
title: "Plans"
url: https://services.dev/docs/money/plans
captured: [claims-ledger.txt, money-statement.txt, pricing-plan-card.txt]
codes: [not_live]
---
# Plans

URL: https://services.dev/docs/money/plans

> Which plan a Service needs, as check derives it from your files. What each plan adds, the limits, the floor no plan sells, the Live gate, and the take, which falls as the plan rises and sits only on the value your brand adds.

Which plan does a Service like yours need? `check` reads it off your files, line by line. Every key runs on every plan in test, so you build the whole Service on Free. On Free, services.dev earns only when your Service gets paid, and there is no trial clock: each gated key runs three paid live jobs, however long they take.

```txt title="services.dev check"
$ npx services.dev check
services/translation.ts · 14 lines · $89 per job, within 48 hours, charged on file's receipt.
  plan    Launch (services.dev) · roles.translator.pool at services/translation.ts:6 · subject at :13 · clocks at :14
          every key runs in test on any plan · deploy --live asks for Launch
  take    your plan's take on each released charge · never on the translator's $30.00
```

`check --fit free` prints the rewrite that stays on Free: sign the act yourself, and leave out the subject and the clock. You can also answer it before you write a file. Each yes names the line that needs a plan, and your plan is the highest one any yes names:

| If yes | The line | Plan |
|---|---|---|
| Do AI, you and up to two staff do every step, on your builder.domains address? | [every key, in test](https://services.dev/docs/money/plans.md#free) | Free |
| Will anyone beyond you and two staff do a step? | [`Pool({...})`](https://services.dev/docs/people/pool.md) | Launch |
| Will a member earn a share of what the job wins? | [`pay: { share }`](https://services.dev/docs/people/pool.md) | Team |
| Does a buyer send a security questionnaire? | [no key](https://services.dev/docs/app/owner.md) | Scale |
| Will buyers order on your own domain? | [`Brand.domain`](https://services.dev/docs/service/brand.md) | Launch |
| Will a Pool another operator runs fill a step? | [`pool: '<door>/<pool>'`](https://services.dev/docs/people/pool/share.md#import-a-pool-another-operator-runs) | Launch |
| Will your members join on a door someone else runs, such as gigs.expert? | [`door: '<existing door>'`](https://services.dev/docs/people/pool/door.md#use-an-existing-door) | Launch |
| Does the work run for years on one subject, such as a taxpayer or a patent? | [`subject, subject.period`](https://services.dev/docs/service/subject.md) | Launch |
| Will you sell a yearly or monthly plan with allowances? | [`price.every, price.includes`](https://services.dev/docs/money/subscriptions.md) | Launch |
| Are you paid on an outcome, such as a share of a closed deal? | [`price.share, outcome`](https://services.dev/docs/money/outcomes.md) | Launch |
| Should the share of jobs a person checks fall while send-backs stay rare? | [`human: { sample, floor }`](https://services.dev/docs/people/sample.md) | Launch |
| Does your console's plan card show Launch's take saving more than its price? | [the take](https://services.dev/docs/money/plans.md#the-take) | Launch |
| Will you run a door of your own, on its own domain, with a demand board? | [`Pool.door, Pool.public`](https://services.dev/docs/people/pool/door.md) | Team |
| Should each Task go to one member at a time, best fit first? | [`dispatch: 'cascade'`](https://services.dev/docs/people/pool/dispatch.md) | Team |
| Will members earn tiers, or a firm enroll its bench? | [`Pool.tiers, Pool.firms`](https://services.dev/docs/people/pool/track.md) | Team |
| Does a dated season need committed hours? | [`Pool.standby`](https://services.dev/docs/people/pool/pay.md#other-lines-a-member-earns) | Team |
| Will you sell in a second region, under its own Rules row? | [`Rules.regions`](https://services.dev/docs/people/where.md) | Team |
| Will an integrator resell your Service as its own? | [`Brand.tenants`](https://services.dev/docs/people/tenants.md) | Team |
| Does your console's plan card show Team's take saving more than its price? | [the take](https://services.dev/docs/money/plans.md#the-take) | Team |
| Will other operators staff from your Pool? | [`Pool.export`](https://services.dev/docs/people/pool/share.md#export-your-pool) | Scale |
| Will a practice bring its own professionals? | [`Brand.workspaces`](https://services.dev/docs/people/practices.md) | Scale |
| Does your console's plan card show Scale's take saving more than its price? | [the take](https://services.dev/docs/money/plans.md#the-take) | Scale |

Free sells finished work on your builder.domains address, with you and two staff as the only people. Launch adds your own domain, your own people, and work that recurs or is paid on its outcome. Team adds a market: tiers, a door of your own, and members paid a share of the win. Scale adds what a buyer's security review asks for.

## Which plan your Service needs

Each reference Service, rung by rung: what it sells, who does the steps, and the run that prints its plan. Every rung is derived from the Service's own files.

**lingua**

```txt title="services.dev check --plan"
# Free · four Services AI delivers alone, each at a price per job
#   who: AI delivers every job; nobody signs
#   sides: AI is the whole cost: no pay line, and the take sits on all of each price
# Launch · Translation, signed by a sworn translator from lingua's own Pool
#   who: up to five sworn translators sign, $30 an act
#   sides: a signed job leaves $59.00 of $89.00 after the translator's $30.00, and the take sits on the $59.00 alone

$ npx services.dev check --plan services/
lingua · 4 Services · translation, certified-translation, translated-summary, store-listing
  plan    Free (services.dev) · no gated key: AI delivers every job, at a price per job
          every key runs in test on any plan
  sides   AI is the whole cost: no pay line, and the take sits on all of each price

$ npx services.dev check --plan grow/role.ts
grow/role.ts · Translation, signed by a sworn translator
  plan    Launch (services.dev) · roles.translator.pool at :12 · Pool({...}) at :24
          every key runs in test on any plan · deploy --live asks for Launch after 3 sampled jobs
  cure    services.dev check --fit free: sign the act yourself, with a role and no pool
  sides   a signed job leaves $59.00 of $89.00 after the translator's $30.00, and the take sits on the $59.00 alone
```

**api.lawyer**

```txt title="services.dev check --plan"
# Free · trademark responses you sign yourself, as an attorney admitted in any state
#   who: you sign each response; two staff can too
#   sides: you sign, so each response's $349.00 pays no attorney: only AI comes out of it
# Launch · a small practice: you, two staff and five attorneys, or a rented Pool, on every matter
#   who: up to five attorneys sign, or a rented door's
#   sides: each response leaves you $170.00 of $349.00, and the attorney's $175.00 is their own sale, with no take on it
# Team · full depth: tiers and ranked offers, three states, the custodian ladder
#   who: a market of attorneys, tiered and ranked, in three states
#   sides: three states and ranked offers widen who signs; each response still leaves you $170.00 and the attorney $175.00

$ npx services.dev check --fit free services/trademark-response.ts
services/trademark-response.ts · Trademark Office Action Response · $349, charged when the USPTO files it
  fit     Free (services.dev), with 1 change
          services/trademark-response.ts:13   − pool: attorneys, pay: 175  + credential: 'bar admission'  → you sign each response, as an attorney admitted in any state, from the owner console
  plan    Free (services.dev) · on the floor: every reserved act signed by a credentialed person, you and two staff as signers
          the gate reads each Service: the three-state rules row sells contract advice, and this response needs none of it
  sides   you sign, so each response's $349.00 pays no attorney: only AI comes out of it

$ npx services.dev check --fit launch
  fit     Launch (services.dev), with 6 changes
          rules.ts:23                         − , 'US-NY', 'US-TX'  → contract advice sells in California; a second state is Team
          pools/attorneys.ts:26               − affinity: '30d', rank: ['fit', 'track', 'speed'],  + dispatch: 'feed',  → each Task posts to every eligible attorney, and conflicts still clear before a claim
          pools/attorneys.ts:27               − tiers: [{ name: 'reviewer' }, { name: 'signer', after: 20, sendbacks: '5%', on_time: '95%' }, { name: 'counsel', after: 100, sendbacks: '3%', on_time: '98%' }],  → every verified attorney is offered every Task they can take
          services/docket-watch.ts:16         − , event: { 'office_action.issued': trademarkResponse }  → the watch flags an office action, and the client orders its response
          services/provisional-patent.ts:29   − steward: docketWatch,  → the docket watch sells on its own
          services/provisional-patent.ts:30   − , custodian: ['practitioner', 'brand']  → the practitioner who signs stays of record
  plan    Launch (services.dev) · a small practice: you, two staff and five attorneys, or a rented Pool; every Service, every clock
  sides   each response leaves you $170.00 of $349.00, and the attorney's $175.00 is their own sale, with no take on it

$ npx services.dev check --plan
api.lawyer · 9 files · 6 Services, 1 Pool, rules 2026-10 and the brand
  plan    Team (services.dev) · the highest plan a file needs · each Service runs live on its own
  Launch  brand.ts                          Brand.domain at :8
          services/contract-review.ts       roles.attorney.pool at :14
          services/demand-letter.ts         roles.attorney.pool at :19
          services/formation.ts             roles.attorney.pool at :16 · subject at :18 · two clocks on the subject at :30 and :31
          services/trademark-response.ts    roles.attorney.pool at :13
  Team    rules.ts                          Rules.regions at :23: three states
          pools/attorneys.ts                cascade at :25, because clear.check names parties · Pool.rank, Pool.affinity at :26 · Pool.tiers at :27
          services/docket-watch.ts          on.event at :16, routing past its subscription
            also Launch                     subject at :14 · price.every at :18
          services/provisional-patent.ts    subject.steward at :29 · subject.of_record.custodian at :30
          every key runs in test on any plan · deploy --live asks for each key's plan once its three sampled jobs release
  sides   three states and ranked offers widen who signs; each response still leaves you $170.00 and the attorney $175.00
```

**apis.tax**

```txt title="services.dev check --plan"
# Free · returns you prepare and sign yourself, as an enrolled agent or CPA, one tax year per job; transcripts alongside
#   who: you sign, staff repair rejections
#   sides: you sign, so a return's $1,800.00 is yours less AI: no preparer's $150.00 or signer's $105.00 to pay
# Launch · a small practice: you, two staff and five members, or a rented Pool; returns, estimates and the Tax Plan
#   who: up to five members sign, or a rented door's preparers
#   sides: the Tax Plan's cycle leaves $2,100.00 of $2,400.00 after the signer's $210.00 and the representative's $90.00
# Team · full depth: a door of its own, standby for the season, the custodian ladder
#   who: a season's market on its own door, on standby
#   sides: a door of your own pays no placement, and standby fills both windows at its retainer instead of ladder raises

$ npx services.dev check --fit free services/annual-return.ts
services/annual-return.ts · Annual Return · $1,800 per return, filed 5 days before its deadline, 20% off if late, or we pay the penalty and its interest, up to $5,000, after we ask the IRS to take it off, charged when the federal return is accepted
  fit     Free (services.dev), with 7 changes
          brand.ts:9                    − domain: 'apis.tax',  → the brand serves on apis-tax.builder.domains
          services/annual-return.ts:29-33  − subject: { … }  → each return is one tax year's job: last year's figures come in on the organizer
          services/annual-return.ts:34  − roles: { preparer: { pool: preparers, pay: job => 90 + 15 * job.input.jurisdictions.length }, signer: { pool: preparers, pay: job => 45 + 15 * job.input.jurisdictions.length } },  + roles: { preparer: { credential: 'ptin' }, signer: { credential: { all: ['ptin'], any: ['cpa', 'enrolled agent'] } } },  → you sign as the enrolled agent or CPA, and a staff preparer with a PTIN repairs rejections, from the owner console
          services/annual-return.ts:53  − , guarantee: { covers: ['penalties', 'interest on them'], up_to: 5_000, after: 'notice-response', excludes: 'held' }  → the 20% off a late return is the promise you sell
          services/annual-return.ts:55  − assessment: { due: assessmentCloses, owner: 'brand', lives_on: 'subject', rungs: ['notice 30d'] },  → you keep the assessment date yourself
          services/annual-return.ts:56  − refund: { due: refundCloses, owner: 'of_record', lives_on: 'subject', hard: { bars: [{ step: 'amended-return.file', when: claimsRefund }] } },  → and the refund date
          services/annual-return.ts:57  − expiring: { due: earliestExpiry, owner: 'brand', lives_on: 'subject', rungs: ['notice 180d'] },  → the file and pay clocks stay on the job
  plan    Free (services.dev) · on the floor: the signature reserved to a PTIN and a CPA or enrolled agent, and the e-file under the brand's EFIN
          the gate reads each Service: transcripts sell beside it on Free, under the brand's participant status
  sides   you sign, so a return's $1,800.00 is yours less AI: no preparer's $150.00 or signer's $105.00 to pay

$ npx services.dev check --fit launch
  fit     Launch (services.dev), with 8 changes
          pools/preparers.ts:11         − door: 'gigs.tax',  → the Pool serves at apis.tax/practitioners
          pools/preparers.ts:29         − firms: true,  → each member clears conflicts on their own ledger
          pools/preparers.ts:30         − affinity: '14d',  → next year's return is offered to the Pool, the signer of record among them
          pools/preparers.ts:32-35      − standby: [ … ]  → the season fills on the default ladder's raises
          services/annual-return.ts:31  − , custodian: ['signer', 'brand']  → the signer who signs stays of record
          services/annual-return.ts:32  − , steward: carryforwardWatch  → the client keeps each date a return leaves on the taxpayer
          services/annual-return.ts:53  − , guarantee: { covers: ['penalties', 'interest on them'], up_to: 5_000, after: 'notice-response', excludes: 'held' }  → a penalty for a late return is the client's, as the agency charges it
          services/tax-plan.ts:29       − , 'fact.restated': amendedReturn  → a restated fact offers the amendment from the return that read it
  plan    Launch (services.dev) · a small practice: you, two staff and five members, or a rented Pool; every clock, the Tax Plan and its allowances
  sides   the Tax Plan's cycle leaves $2,100.00 of $2,400.00 after the signer's $210.00 and the representative's $90.00

$ npx services.dev check --plan
apis.tax · 13 files · 10 Services, 1 Pool and 1 imported, rules 2026-10 and the brand
  plan    Team (services.dev) · the highest plan a file needs · each Service runs live on its own
  Free    rules.ts                      on the floor: every reserved act signed by a credentialed person, or by the taxpayer for themselves
          services/transcript.ts        no gated key · ives is named by a Rules row, so the brand's credential is on the floor
  Launch  brand.ts                      Brand.domain at :9
          services/amended-return.ts    subject at :20 · roles.preparer.pool at :21
          services/carryforward-watch.ts  subject at :11 · clocks.lives_on: 'subject' at :13 · price.every at :14
          services/estimate.ts          subject at :17, and the payment it keeps
          services/information-returns.ts  subject at :15
          services/notice-response.ts   subject at :19 · roles.representative.pool at :20 · price.outcome at :32, the fee on a penalty abated
          services/question.ts          subject at :14 · roles.signer.pool at :15
          services/year-end-close.ts    subject at :16 · pool: '<door>/<pool>' at :17, gigs.accountants/accountants, a Pool another operator runs, with its placement line
  Team    pools/preparers.ts            Pool.door at :11 · gigs.tax, a door your account operates · Pool.firms at :29 · Pool.affinity at :30 · Pool.standby at :32
            also Launch                 Pool({...}) at :9 · Pool.payouts.schedule at :36
          services/annual-return.ts     subject.of_record.custodian at :31 · subject.steward at :32 · clocks.<c>.guarantee at :53
            also Launch                 subject.keeps at :32 · clocks.lives_on: 'subject' at :55, :56 and :57, the assessment, refund and expiring clocks
          services/tax-plan.ts          on.event at :29, past the Tax Plan's allowance: fact.restated mints an amended return
            also Launch                 subject at :22 · on.schedule at :24 · price.every at :31
          every key runs in test on any plan · deploy --live asks for each key's plan once its three sampled jobs release
  sides   a door of your own pays no placement, and standby fills both windows at its retainer instead of ladder raises
```

**api.forsale**

```txt title="services.dev check --plan"
# Free · meetings AI books and you hold, $400 a meeting held
#   who: AI books and meets; you and two staff hold each meeting of $50,000 and up, and work the deal
#   sides: $400.00 at each held meeting and nothing on a booking; a no-show costs AI up to $40.00
# Launch · deals AI works to close, with closers listed on closers.deals, paid 5% of the closed value at won
#   who: AI works every deal; a closer takes each one of $50,000 and up, $5,000 at won, charged to the seller
#   sides: a won deal leaves $3,388.66 and a lost one costs $340.00, so it breaks even at 9.1% won; the closer's $5,000.00 is the seller's
# Team · full depth: the closer's share at won, tiers by deal size, firms with a bench
#   who: closers paid a share at won, tiered, and firms enrolling a bench
#   sides: pay that scales with the deal: the closer's $7,400.00 at $74,000 against $5,000.00 flat, tiers by deal size and firms with a bench; your odds stay 9.1%

$ npx services.dev check --fit free services/deal.ts
services/deal.ts · Deal · nothing on effort; 5% of closed_value at won, proven by the account's payment
  fit     Free (services.dev), with 10 changes
          brand.ts:7             − domain: 'api.forsale',  → the brand serves on api-forsale.builder.domains
          services/deal.ts:2     − import { closers } from '../pools/closers.ts'  → no Pool: you and two staff are the only people
          services/deal.ts:28    − setter: { pool: closers, pay: { usd: 250, on: 'meet.held' } },  → no setter: AI books every meeting
          services/deal.ts:29    − pool: closers,  → you hold each meeting of $50,000 and up and work the deal, from the owner console
          services/deal.ts:30    − pay: { share: '10%', of: 'closed_value', on: 'won', from: 'buyer' },  → the close is yours, so nothing passes through
          services/deal.ts:32    − nurturer: { pool: closers, pay: 150 },  + nurturer: {},  → you revive a deal gone quiet yourself
          services/deal.ts:40    − , escalate: { to: 'setter', when: setter }  → AI books on a warm reply too
          services/deal.ts:49-50  − outcome: { … }  → the held meeting is what you sell, so nothing waits on a payment
          services/deal.ts:51    − usd: 0, share: '5%', of: 'closed_value', on: 'won', ai: 40,  + usd: 400, release: 'meet.held', ai: 40,  → $400 a meeting held, charged when the guard accepts it; a no-show charges nothing
          services/deal.ts:52    − lines: { referral: { share: '1%', of: 'closed_value', to: 'referrer', on: 'won' } } },  + },  → a referred deal is priced like any other
  plan    Free (services.dev) · you, two staff and AI work every deal, on api-forsale.builder.domains · the held meeting is the outcome you are paid on
  odds    a held meeting leaves $400.00 less AI · one no one attends charges nothing and costs AI up to $40.00
  sides   $400.00 at each held meeting and nothing on a booking; a no-show costs AI up to $40.00

$ npx services.dev check --fit launch
  fit     Launch (services.dev), with 5 changes
          pools/closers.ts:17  − rank: ['fit', 'track'],  → each gig posts to every eligible closer on the door's feed
          pools/closers.ts:18  − tiers: [{ name: 'SMB' }, { name: 'midmarket', after: 10, on_time: '90%' }, { name: 'enterprise', after: 40, on_time: '95%' }],  → every verified closer is offered every deal they can take
          pools/closers.ts:19  − firms: true,  → each closer joins on their own
          services/deal.ts:30  − pay: { share: '10%', of: 'closed_value', on: 'won', from: 'buyer' }  + pay: { usd: 5_000, on: 'won', from: 'buyer' }  → each close the closer wins pays $5,000, flat, charged to the seller beside the 5%; a lost close pays nothing
          services/deal.ts:52  − lines: { referral: { share: '1%', of: 'closed_value', to: 'referrer', on: 'won' } } }  + }  → a referred deal is priced like any other
  plan    Launch (services.dev) · a Pool listed on closers.deals with its placement line, and 5% of the closed value at won
  odds    lost by a closer −$340.00: the setter's $250.00, placement $50.00 and AI $40.00 · a won deal leaves $3,388.66 · breaks even at 9.1% won
  sides   a won deal leaves $3,388.66 and a lost one costs $340.00, so it breaks even at 9.1% won; the closer's $5,000.00 is the seller's

$ npx services.dev check --plan
api.forsale · 3 files · 1 Service, 1 Pool and the brand
  plan    Team (services.dev) · the highest plan a file needs · each Service runs live on its own
  Launch  brand.ts             Brand.domain at :7
  Team    pools/closers.ts     Pool.rank at :17 · Pool.tiers at :18 · Pool.firms at :19
            also Launch        Pool({...}) at :8 · door: '<existing door>' at :10, closers.deals, a door another account operates · Pool.payouts.schedule at :22
          services/deal.ts     pay: { share } at :30, the closer's 10% at won · the referrer's 1% at :52
            also Launch        roles.setter.pool at :28 · roles.closer.pool at :29 · roles.nurturer.pool at :32 · outcome at :49 · price.share at :51
          every key runs in test on any plan · deploy --live asks for each key's plan once its three sampled jobs release
  sides   pay that scales with the deal: the closer's $7,400.00 at $74,000 against $5,000.00 flat, tiers by deal size and firms with a bench; your odds stay 9.1%
```

## Free

| Adds | Key |
|---|---|
| API, CLI, MCP, SDK, Site, Docs and every app, on builder.domains | `Service({...})` |
| The brand's own words on every surface | `Brand.words` |
| Adversarial and "yes, and" review, any lenses, any rounds | `review` |
| A person approves the jobs you pick | `human: 'risky'` |
| A fixed share of delivered jobs checked | `human: { sample }` |
| The seven asks: sign, consent, answer, upload, direct, decide, grant | `deliver.<step>.ask` |
| Your own code as a step, citing the rule it follows | `deliver.<step>.by` |
| Filings with typed receipts and repair windows | `deliver.<step>.submit` |
| Deadlines, ends, policy, signals, talk and nested Services | `within, ends, policy` |
| Dates the world sets on a job, with rungs that run steps and moves | `clocks` |
| Per job, per unit, by tier, self-help and an approval upgrade | `price` |
| Release on delivery, acceptance or a receipt | `price.release` |
| Pass-through fees at cost | `price.lines` |
| You and your staff, as signers and reviewers | `roles.<r>` |
| Test and live keys, and buyer OAuth |  |

## Launch

| Adds | Key |
|---|---|
| Your own domain for every surface and app | `Brand.domain` |
| A sample that falls while send-backs stay rare | `human: { sample, floor }` |
| The "delete the line" signal, once a person stops changing anything |  |
| Brief corrections written back from reviews | `deliver.feedback` |
| A clock that lives on the subject and outlives its job | `clocks.lives_on: 'subject'` |
| What outlives the job, one job per period | `subject, subject.period` |
| Facts kept for next period, such as carryforwards | `subject.keeps` |
| Subscriptions with allowances | `price.every, price.includes` |
| Schedules that mint jobs on the minted Service's own dates, and catch up after a gap or a late start | `on.schedule` |
| Events that mint a Service the same subscription's allowance counts | `on.event` |
| Outcome pricing, with proof and reversal windows | `price.share, outcome` |
| Flat pay at an end, held with the outcome | `pay: { usd, on: <end> }` |
| A payout schedule, and a hold on a new member's first Tasks | `Pool.payouts.schedule, hold_first` |
| An imported Pool another operator runs, with its placement line | `pool: '<door>/<pool>'` |
| Your Pool listed on an existing door, with its placement line | `door: '<existing door>'` |
| Your own Pool, at /<pool> on your brand | `Pool({...})` |
| Feed, pick and direct dispatch | `Pool.dispatch` |
| The default fill ladder, and probation | `Pool.fill, Pool.probation` |
| Separation of duties across your members | `with: { differ }` |

On Launch, a Pool's members come from three places, and only the Pool you own has a cap of five:

| From | One line | Roster · rules · name members see | Placement | Plan |
|---|---|---|---|---|
| [A Pool you rent](https://services.dev/docs/people/pool/share.md#import-a-pool-another-operator-runs) | `pool: 'gigs.expert/translators'` | the operator's, throughout | theirs, on each Task it fills | Launch |
| [Your own Pool](https://services.dev/docs/people/pool.md) | `Pool({...})`, at `/<pool>` on your brand | yours · yours · your brand | none | Launch |
| [An existing door](https://services.dev/docs/people/pool/door.md#use-an-existing-door) | `door: 'gigs.expert'` | the door's · yours · the door | the door's, on each Task it fills | Launch |

Past five members, rent a door's Pool and pay placement per Task, or open your own door on Team and pay none; the plan card shows which costs less. Time and outcome pricing need no market, so they sit here.

## Team

| Adds | Key |
|---|---|
| A credential the brand holds that no Rules row requires, and credentials across regions | `Brand.credentials` |
| Tenants reselling your Services as their own offers | `Brand.tenants` |
| Review evals: each lens scored on held-out jobs |  |
| A date sold as a promise: penalties credited from your line, up to a cap | `clocks.<c>.guarantee` |
| The custodian ladder for who is of record, and a steward Service | `subject.of_record.custodian, subject.steward` |
| Events routed to Services outside the subscription, and grants kept on a subject | `on.event` |
| Share pay to members, and referral shares | `pay: { share }` |
| Cascade: each Task offered to one member at a time, and a fill ladder you tune | `dispatch: 'cascade'` |
| Ranked offers, and affinity to the member who served the buyer before | `Pool.rank, Pool.affinity` |
| Tiers, golden Tasks and firms with a bench | `Pool.tiers, Pool.firms` |
| Separation across roles and firms | `with: { differ }` |
| Work-register Pools: completion evidence at a site, in a window | `Pool.register: 'work'` |
| A door your account operates, on its own domain, with a public demand board | `Pool.door, Pool.public` |
| Committed hours for a dated season | `Pool.standby` |
| One Pool across your brands |  |
| Rules across regions | `Rules.regions` |
| Staff SSO, custom roles and preview deploys |  |
| OAuth apps for integrators |  |

## Scale

| Adds | Key |
|---|---|
| Practice workspaces, with their own professionals | `Brand.workspaces` |
| Unlimited members in Pools you own |  |
| Your Pool exported for import; you earn its placement line | `Pool.export` |
| SCIM, audit export and SIEM |  |
| Private deploys, data regions, uptime terms and invoices |  |

## Limits

| Limit | Free | Launch | Team | Scale |
|---|---|---|---|---|
| Signers: you and your staff | 3 | — | — | — |
| Members in Pools you own | none | 5 | 50 | Unlimited |
| Members in a Pool you import | none | Unlimited | Unlimited | Unlimited |
| Tenants | none | none | 10 | 25 and up |
| Rules regions | 1 | 1 | Unlimited | Unlimited |
| The audit log | 7 days | 30 days | 90 days | 400 days |

At a limit, the next member, tenant or region answers the same OFFER; nothing already running stops.

## Never for sale

What keeps a reserved act lawful, a member paid and a refusal uncharged runs on every plan. A floor row names no number: your services.dev plan sets how many people you seat, never whether an act is lawful.

| On every plan | Key |
|---|---|
| Rules rows, each with counsel's position | `rules` |
| Every reserved act is signed by a credentialed person or refused with its cure; the plan sets how many people you seat, never whether an act is lawful | `sign: { by: '<role>' }` |
| A credential the brand holds, when a Rules row names it for a reserved act | `and: { brand: '<credential>' }` |
| The stamped signature, written into the artifact before it is hashed | `stamp: true` |
| Consent and sign asks | `ask: 'client'` |
| A licensed fee on the member's own rail, at a two-seller checkout | `rail: 'member'` |
| No take on a licensed fee, or on any member-rail fee | `the take` |
| Flat pay on every outcome of the act, a send-back and a decline included | `pay: <usd>` |
| Pay accrues at the act, on its own clock, and is never clawed back, on a sampled job or after a downgrade | `payouts: { at: 'act' }` |
| Held share pay sits untransferred under its own job, and only that job's outcome going back inside its window reverses it | `held_pay_exposed` |
| services.dev takes nothing a member pays | `Pool.fee, instant_fee` |
| No member is charged per Task, per lead or by a percentage; the one allowed charge is a flat software fee, declared before anyone joins | `member_charged` |
| A refusal never charges | `act_refused` |
| The append-only record of every job | `the record` |

## Going live on a gated key

Each gated key runs three live jobs before your services.dev plan is asked for. A job counts when its charge releases, so the sample ends on money you were paid. Then `deploy --live` answers OFFER, with the plan, each key that needs it and the cure ([take the first real job](https://services.dev/docs/start/live.md#deploy-live)):

| When | What happens |
|---|---|
| A sample is spent | Jobs already ordered finish. A key with a lower form runs it: a falling sample holds, `cascade` runs as `'feed'` |
| A key has no lower form | A new order answers [`not_live`](https://services.dev/docs/reference/errors.md#not_live), the waitlist in `next`; no buyer is charged |
| An OFFER is within your ceiling | Your coding agent accepts it and records `plan.accepted`; above it, `hand_to_person` brings it to you |
| A key's jobs take months to release | Three live jobs run in flight at a time, and a fourth live order answers OFFER. Each counts once its charge releases, and the console's plan card dates the end |
| You downgrade | A job, a subject with its clocks, and a paid cycle keep the plan they started under |
| A Pool would wait | Members are told on the delivery portal first, Pool health shows the date, and standby is paid to its term |

**The gate reads each Service, not the folder.** apis.tax sells transcripts on Free while its annual return's sample runs.

## The take

Each dollar of a released charge has one claimant. services.dev's take sits on one line: the value your brand adds.

**you = charge − tax − processing − AI − pay − pass-through − coverage − placement − nested Services − services.dev's take**

**lingua**

```bash
npx services.dev ledger --claims job_7Hq2   # lingua
```

```txt title="magic values: none"
job_7Hq2 · Translation, signed · $89.00 released on delivery
  line                  amount  claimant              services.dev's take
  The translator's pay  $30.00  the sworn translator  $0
  lingua's value added  $59.00  lingua                the take
  AI $0.84 comes out of lingua's line. The take sits on $59.00 and nowhere else.
```

**api.lawyer**

```bash
npx services.dev ledger --claims job_7Hq3   # api.lawyer
```

```txt title="magic values: none"
job_7Hq3 · Trademark Office Action Response · $349.00 released on the USPTO's receipt
  line                                      amount   claimant                            services.dev's take
  The attorney's fee, sold by the attorney  $175.00  the attorney, on their own account  $0
  Coverage, at cost                         $4.00    the Pool's malpractice cover        $0
  api.lawyer's value added                  $170.00  api.lawyer                          the take
  Two sellers on one receipt. AI $2.10 comes out of api.lawyer's line.
```

**apis.tax**

```bash
npx services.dev ledger --claims sbn_7Hq2   # apis.tax
```

```txt title="magic values: none"
sbn_7Hq2 · Tax Plan, cycle 1 · $2,400.00 released at the cycle's end, 2028-01-20
  line                                  amount     claimant                services.dev's take
  The signer's pay, two signatures      $210.00    the signer              $0
  The representative's pay, one notice  $90.00     the representative      $0
  Eight jobs inside the allowance       $0.00      no charge of their own  $0
  apis.tax's value added                $2,100.00  apis.tax                the take
  AI $7.56 across the eight jobs comes out of apis.tax's line. The take settles once, on $2,100.00.
```

**api.forsale**

```bash
npx services.dev ledger --claims job_7Hq5   # api.forsale
```

```txt title="magic values: none"
job_7Hq5 · Deal, 5% at won and the closer's 10% · $11,100.00 released at won on a $74,000.00 deal, proven by the payment
  line                                       amount     claimant                              services.dev's take
  The closer's share, charged to the seller  $7,400.00  the closer, 10% at won                $0 · held to the window
  The setter's pay                           $250.00    the setter, flat at the held meeting  $0
  Placement, two gigs on closers.deals       $50.00     the door's operator                   $0
  api.forsale's value added                  $3,400.00  api.forsale                           the take · held to the window
  AI $11.34 comes out of api.forsale's line. If the payment reverses inside the 60 days, the 5%, the closer's share and the take reverse together; the setter keeps their $250.00.
```

The take applies only when a charge releases, reverses with it, and falls as your services.dev plan rises. A line leaves its base only with its proof, and `check` fails `double_take` when a definition would put two claims on one dollar.

| Line | The take |
|---|---|
| Member pay, pass-through, coverage, a licensed fee | None: each leaves the base with its proof |
| Placement | None: one claim, the door operator's, paid per Task and never out of the member's fee |
| A nested Service | On its own line, once |
| An outcome price | Held with the share, and reversed with it inside `outcome.window` |
| An outcome price, across a month | On each Service's won bases less the flat pay, placement and AI its lost jobs cost, never below zero: api.forsale's November, $10,200.00 won less $5,500.00 lost, is a base of $4,700.00 |
| Money never collected | None: an unpaid share carries no take |
| A tenant's markup | The tenant's own line, under its plan; a receipt names up to three sellers |
| A subscription | At each release, on the cycle's charge less its pay; none inside an allowance |

A plan pays for itself once the take it saves passes its price: your month's take base, times the gap between the two takes, against the gap between the prices.

## Your services.dev statement

Each charge runs on behalf of your account, and each month's statement shows every dollar services.dev touched: your plan's Stripe subscription, the take withheld at each release, the debits made outside a charge, and on an outcome price the month's netting of lost cost, returned as one transfer on `take.credited`:

```txt
→ GET /owner/statements/stm_2026-11   # api.forsale: everything services.dev charged, withheld, debited and returned in November 2026
```

```txt title="captured/money-statement.txt · 200 · stm_2026-11 · api.forsale · 1 to 30 Nov 2026 · on Launch · magic values: none"
  plan       Launch · $— a month · services.dev's own Stripe subscription, billed to your card …4242 on 1 Nov
  withheld   the take on $10,200.00 of won bases · 3 charges released, each withheld as your share transferred · le_ per charge
  debits     $5,500.00 · py_… for setters, nurturers, placement and AI on the month's lost deals · each on its own deal's ledger
  netting    won bases $10,200.00 less lost cost $5,500.00 · the month's base $4,700.00, never below zero
  credited   take.credited · the take on $5,500.00, returned as one transfer, tr_…N26, to acct_…F0r5 on 1 Dec
  owed       nothing · your balance covered every debit, and your bank account was drawn for none
```

## Your console's plan card

The owner console prints the services.dev plan your files need, each key's sample, and what each key you wrote would have saved on your own jobs. Thirty days before a schedule would spend a sample, it offers `plan.ahead`, which your agent accepts within the ceiling. Buyers and members never see it.

```txt
→ GET /owner/plan   # the owner console's plan card, for a tax brand on Launch
```

```txt title="captured/pricing-plan-card.txt · magic values: none"
← plan · Launch (services.dev) · your files need Team for 2 keys
  needs      Team · Pool.standby at pools/preparers.ts:32 · 3 of 3 sampled jobs released · new Tasks fill on the ladder
             Team · subject.of_record.custodian at services/annual-return.ts:31 · 1 of 3 sampled jobs released
  shadow     from this month's 212 returns, had each key you wrote run as written
             Pool.standby · 38 Tasks claimed 2h 10m sooner on average · $214.00 of ladder raises not paid · 38 jobs
  kept       on Launch · human: { sample, floor } · 46 reviews not needed · $1,380.00 of review pay kept · 46 jobs
  placement  $612.00 to the door you import from, for 204 Tasks · a door of your own: $— a month on Team
  ahead      Feb 1 mints 40 annual returns · subject.of_record.custodian has 2 sampled jobs left · plan.ahead offers Team on Jan 2
  take       break-even: $— a month of released charges · the take Team saves on your base, against the gap in price
```

**Next:** [Money](https://services.dev/docs/money.md), every way a Service earns and pays, or the plans side by side on [pricing](https://services.dev/pricing).

---

- Up: [Money](https://services.dev/docs/money.md)
- Previous: [Payouts](https://services.dev/docs/money/payouts.md)
- Next: [Every surface, from one contract](https://services.dev/docs/surfaces.md)
