# How is it going

URL: /start/guides/how-is-it-going · Id: `guide:how-is-it-going`

> Say "how is it going" and get a weekly email with the numbers that matter at your stage, each against last week, and what waits on you.

Get one [Dashboard](/business/nouns/dashboard) a week in your inbox, with the numbers your stage is judged by. Signups and deposits come before revenue, and revenue comes before runway.

Needs: [Startup](/business/nouns/startup)

**Before it runs**

- You leave the chat: Never: it all happens in the chat.
- First question at Idea: “Visits, signups and deposits against your bar, every Monday?”
- First question at Building: “Add how many reservers used the preview this week?”
- First question at Live: “Revenue, new and lost customers, and support load, against last week?”
- First question at Repeatable: “Add month-3 retention, burn, cash and runway?”
- What it costs: Nothing.
- To undo it: Stop the schedule. The Dashboard stays.

## What you get
- 1 Dashboard of the numbers that matter at your stage, each against last week (Dashboard)
- 1 calculation behind each number, shown beside it (Collection)
- 1 list of every Approval and Task waiting on you, with a link to each (Approval)
- 1 weekly send to your inbox (Message)

## Your agent does
**For agents**

- Guide: `guide:how-is-it-going`, status `live`. Page: [/start/guides/how-is-it-going.md](/start/guides/how-is-it-going.md).
- Approval: none. Run it when the founder asks.
- Leaves the chat: never.
- Needs first: [Startup](/business/nouns/startup).
- Run: call the steps in order, each through the API, SDK, CLI or MCP tab below; a later step passes the `$id` an earlier one returns. Each value marked example is the sample business’s: pass the founder’s own.

| Step | Verb | Inputs (type, required, this guide’s value) | Returns |
| --- | --- | --- | --- |
| 1 | [`Dashboard.create`](/business/nouns/dashboard/create) (`verb:Dashboard.create`) | `scope` string, required: example `"startup"` | `dashboard` Dashboard |
| 2 | [`Dashboard.ask`](/business/nouns/dashboard/ask) (`verb:Dashboard.ask`) | `question` text, required: example `"This week against last week: visits to the reserve page, signups, deposits against the bar we set, and every Approval waiting on me."`; `dashboard` Dashboard (an id): the `$id` step 1 returns | `query` text, `rows` json, `dashboard` Dashboard |
| 3 | [`Dashboard.schedule`](/business/nouns/dashboard/schedule) (`verb:Dashboard.schedule`) | `dashboard` Dashboard (an id), required: the `$id` step 1 returns; `cadence` string, required: example `"weekly"`; `to` string, required: example `"dana@leaseline.app"` | `dashboard` Dashboard |

Returns: the last call answers with `dashboard` and its `action`, whose `status` is `done`, `pending` (waiting on an Approval or a Worker), `failed`, `canceled` or `refused`:

```json
{
  "api": "https://api.sb/leaseline.app",
  "dashboard": {
    "$id": "https://api.sb/leaseline.app/dashboards/dashboard_1",
    "$type": "Dashboard",
    "scope": "startup"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/action_1",
    "operation": "Dashboard.schedule",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/action_1"
  }
}
```

Next: offer “Send it to my cofounder too”, or “Post it in the team Slack channel instead”.

Calls: `Dashboard.create` → `Dashboard.ask` → `Dashboard.schedule`

Ask:

```text
How is it going?
How are we doing?
How are we doing this week?
```

API:

```bash
# 1. Dashboard.create
DASHBOARD=$(curl -X POST https://api.sb/leaseline.app/dashboards \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"scope":"startup"}' | jq -r '.dashboard["$id"] | split("/") | last')

# 2. Dashboard.ask
curl -X POST https://api.sb/leaseline.app/dashboards/ask \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"question":"This week against last week: visits to the reserve page, signups, deposits against the bar we set, and every Approval waiting on me.","dashboard":"'"$DASHBOARD"'"}'

# 3. Dashboard.schedule
curl -X POST https://api.sb/leaseline.app/dashboards/$DASHBOARD/schedule \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"cadence":"weekly","to":"dana@leaseline.app"}'
```

SDK:

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

const dashboard = await $.Dashboard.create({ scope: 'startup' })
await $.Dashboard.ask({ question: 'This week against last week: visits to the reserve page, signups, deposits against the bar we set, and every Approval waiting on me.', dashboard: dashboard.$id })
await $.Dashboard.schedule({ dashboard: dashboard.$id, cadence: 'weekly', to: 'dana@leaseline.app' })
```

CLI:

```bash
DASHBOARD=$(npx startup-builder do Dashboard.create --json '{"scope":"startup"}' | jq -r '.dashboard["$id"] | split("/") | last')
npx startup-builder do Dashboard.ask --json '{"question":"This week against last week: visits to the reserve page, signups, deposits against the bar we set, and every Approval waiting on me.","dashboard":"'"$DASHBOARD"'"}'
npx startup-builder do Dashboard.schedule --json '{"dashboard":"'"$DASHBOARD"'","cadence":"weekly","to":"dana@leaseline.app"}'
```

MCP:

```json
{
  "name": "do",
  "arguments": {
    "code": "const dashboard = await $.Dashboard.create({ scope: 'startup' })\nawait $.Dashboard.ask({ question: 'This week against last week: visits to the reserve page, signups, deposits against the bar we set, and every Approval waiting on me.', dashboard: dashboard.$id })\nreturn await $.Dashboard.schedule({ dashboard: dashboard.$id, cadence: 'weekly', to: 'dana@leaseline.app' })"
  }
}
```

The numbers change as the business grows:

| State | Calls | Asks first |
| --- | --- | --- |
| [Idea](/business/lifecycle/states/idea) | [`Dashboard.create`](/business/nouns/dashboard/create), [`Dashboard.ask`](/business/nouns/dashboard/ask), [`Dashboard.schedule`](/business/nouns/dashboard/schedule) | Visits, signups and deposits against your bar, every Monday? |
| [Building](/business/lifecycle/states/building) | [`Dashboard.ask`](/business/nouns/dashboard/ask), [`Dashboard.schedule`](/business/nouns/dashboard/schedule) | Add how many reservers used the preview this week? |
| [Live](/business/lifecycle/states/live) | [`Dashboard.ask`](/business/nouns/dashboard/ask), [`Dashboard.schedule`](/business/nouns/dashboard/schedule) | Revenue, new and lost customers, and support load, against last week? |
| [Repeatable](/business/lifecycle/states/repeatable) | [`Dashboard.ask`](/business/nouns/dashboard/ask), [`Dashboard.schedule`](/business/nouns/dashboard/schedule) | Add month-3 retention, burn, cash and runway? |

## Change it
- Send it to my cofounder too.
- Post it in the team Slack channel instead.
- Add revenue, burn and runway now.
- Send it daily until the deposit deadline.

## Under the hood
- Systems: [Reports](/systems/reports), [Product analytics](/systems/product-analytics), [Ledger](/systems/ledger), [Treasury](/systems/treasury), [Work queue](/agents/work-queue)
- Nouns: [Dashboard](/business/nouns/dashboard), [Metric](/business/nouns/metric), [Evidence](/business/nouns/evidence), [Customer](/business/nouns/customer), [Approval](/business/nouns/approval)
- Events: [`Dashboard.asked`](/business/events/Dashboard.asked), [`Dashboard.scheduled`](/business/events/Dashboard.scheduled)

Each [Lifecycle](/business/nouns/lifecycle) state has one metric that matters, and the summary leads with it. Read it for the change, not the totals: week-over-week growth tells you whether last week's work did anything.

Once money moves, revenue reads from the [Ledger](/systems/ledger) and cash from [Treasury](/systems/treasury). Runway divides cash by the last three months of burn. For how each seat did against its contract, turn on the [Monday Role review](/workflows/processes/role-review/monday-role-review).