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.
For developers
Get one 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.
For developers
Needs Startup
What you get
- 1Dashboard of the numbers that matter at your stage, each against last weekDashboard
- 1calculation behind each number, shown beside itCollection
- 1list of every Approval and Task waiting on you, with a link to eachApproval
- 1weekly send to your inboxMessage
Your agent does
How is it going?
How are we doing?
How are we doing this week?
# 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"}'
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' })
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"}'
{
"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 | Dashboard.create, Dashboard.ask, Dashboard.schedule | Visits, signups and deposits against your bar, every Monday? |
| Building | Dashboard.ask, Dashboard.schedule | Add how many reservers used the preview this week? |
| Live | Dashboard.ask, Dashboard.schedule | Revenue, new and lost customers, and support load, against last week? |
| Repeatable | Dashboard.ask, 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, Product analytics, Ledger, Treasury, Work queue
- Nouns
- Dashboard, Metric, Evidence, Customer, Approval
- Events
Dashboard.asked,Dashboard.scheduled
Each 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 and cash from 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.