---
title: "The owner console"
url: https://services.dev/docs/examples/sales/console
captured: [sales-console.txt, sales-plan-card.txt]
---
# The owner console

URL: https://services.dev/docs/examples/sales/console

> The sales brand's console on the last day of December. Twenty-four deals ended, four won and awaiting the account's payment with nothing charged, three paid and held, the month's cash, the closers' held pay, and each deal's state and what it left you.

*sales's words: deal is a job, account is a subject, gig is a task, closer is a member, seller is a client, seller is a buyer (examples/sales/brand.ts).*

The brand's owner reads every deal here, in its own words: deals, gigs, closers. This is the console on 31 December, with Northwind Freight's deal won and waiting on its invoice:

*Screen: the owner console at `/console`, December 2026 (captured/screens/sales-owner-console.html).*

Its first lines are the brand's month, as `dev` prints them:

```bash
open http://localhost:8787/console   # the owner console, 31 Dec 2026
```

```txt title="magic values: none"
sales · December 2026 · 24 deals ended · 7 won, 17 lost · 4 won, awaiting payment, $34,200.00 when they land · +$18,300.00 collected, all held · you −$5,437.40 this month
Deal: closers won 6 of 14 deals they claimed. A won deal left $3,012.18 on average; a lost one cost $298.40. next: check --odds.
Lost: 17 deals by reason · price 6 · timing 4 · competitor 3 · dark 3 · no_fit 1 · counted from each deal's lost output, never its thread.
```

## What each part says

| Part | What it shows |
|---|---|
| The brand's month | 24 deals ended. A won deal charges nothing until its account pays, so the month's cash is what the work and the lost deals cost; the 5% lands as each window closes |
| The month, by line | Collected and held, reversed from the hold, flat pay, placement on closers.deals, and AI |
| Won, awaiting payment | Each won deal's invoice, when it is due, and what is charged when it lands; a deal unpaid 90 days after its close lapses and charges nothing |
| Closers | Who was paid this week, how long an act took to reach a bank, the shares still held, and any gig open past its hold |
| Deals | Each deal's state, who worked it, and what it has left you so far |
| Lost, by reason | The month's lost deals counted by the reason each one's `lost` output names; the console never reads a deal's thread to count them |

A lost deal's cost is the brand's, and it lowers the base services.dev takes from, month by month ([the take on an outcome](https://services.dev/docs/money/plans.md#the-take)).

## The plan card

api.forsale runs on Launch while its files need Team. The card dates the end of the sample and prints what the 10% would have done on December's deals, beside Launch's $5,000 flat at won:

```txt
→ GET /owner/plan   # the owner console's plan card, api.forsale on Launch, 31 Dec 2026
```

```txt title="magic values: none"
← plan · Launch (services.dev) · your files need Team for 4 keys
  needs      Team · pay: { share } at services/deal.ts:30 · 3 sampled deals in flight, none released · a fourth live order answers OFFER · the sample ends when the third releases, by 9 Mar
             Team · Pool.rank, Pool.tiers, Pool.firms at pools/closers.ts:17 to :19 · 3 of 3 sampled jobs released · new gigs post to the whole feed
  shadow     from December's 14 deals closers claimed, 6 won, had each key you wrote run as written
             pay: { share } · closers $41,200.00 at 10% of $412,000 closed, against $30,000.00 at $5,000 flat · charged to the seller either way, so your odds stay 9.1% · 2 deals over $100,000 waited 4 days longer for a claim
             Pool.tiers · 9 of 31 closers would sit above SMB, and the enterprise feed would have opened 3 gigs to them first
  unused     Pool.firms · no firm has asked to enroll a bench
  take       break-even: $— a month of released charges · the take Team saves on your base, against the gap in price
```

[The owner console](https://services.dev/docs/app/owner.md) covers what the console shows for any brand. Run it: [at the rate limit](https://services.dev/docs/operate/limits.md#at-the-rate-limit) and [at a plan limit](https://services.dev/docs/operate/limits.md#at-a-plan-limit).

---

- Up: [The sales example](https://services.dev/docs/examples/sales.md)
- Previous: [Closing on closers.deals](https://services.dev/docs/examples/sales/delivery-portal.md)
- Next: [The money](https://services.dev/docs/examples/sales/money.md)
