# Views and dashboards

URL: /code/views/views-and-dashboards · Id: `page:code/views/views-and-dashboards`

> Every scope, from one Role to the whole Studio, has one view compiled from its records and rendered as a Dashboard for agents, people and devices.

Every scope in [StartupBuilder](/code/builders/startup) has one view: what its reader needs to see and do now. A [Dashboard](/business/nouns/dashboard) renders that view as Markdown for agents, screens for people, and JSON for devices.

## One view per scope
A scope is anything someone answers for: a [Role](/business/nouns/role), a [Team](/business/nouns/team), a [Startup](/business/nouns/startup), a [Portfolio](/business/nouns/portfolio), the [Studio](/business/nouns/studio), or one person. Intersections are scopes too: marketing across every b2c Startup is the marketing view, resolved over that Portfolio.

No one designs these intersections. Each is a point in one space of scope, Role and window, written as a [view address](/code/views/view-address). The same address opens on the web, on a phone, in an agent's context, and through the API.

The view is where work starts. An [Agent](/business/nouns/agent) wakes with its Role's view in context, a founder opens it on a phone, and the weekly review reads it as its agenda. All three see the same numbers from the same records.

## Compiled from records
Nobody authors a Role's view. The compiler walks the records that already define the Role, starting from the [Processes](/business/nouns/process) and [Workflows](/business/nouns/workflow) it runs or answers for. It adds the [Metrics](/business/nouns/metric) those move, the [Key Results](/business/nouns/key-result) set on them, and the [Tasks](/business/nouns/task) and [Approvals](/business/nouns/approval) waiting on the Role.

[Permissions](/business/nouns/permission) decide both what shows and what acts. A Metric the Role may not read is absent. A component whose [Verb](/business/nouns/verb) the Role lacks renders read-only.

Take chairside.app, scheduling software for dental clinics. The [Founder](/agents/founding/founder) moves the retention Key Result from the [product lead](/agents/product/product-lead) to the [success manager](/agents/customer/success-manager). In that one write, one view gains the Key Result and the other drops it, and no Dashboard is edited.

A person's view is the union of every Role they hold, in every Startup. Duplicate Approvals collapse into one, and one list ranks the day's items across all their companies. One operator cofounder runs four Startups from one screen.

## Needs you first
Every view has four sections, always in this order. A view never lists everything: a number appears only when it is off pace, outside its noise band, or waiting on the reader. The rest compresses to one line, such as `+6 on track`.

| Section | Holds |
| --- | --- |
| Needs you | Approvals, pending [Actions](/business/nouns/action) in a [delay window](/agents/autonomy-levels/delay-windows), and Tasks assigned to the reader, nearest close first |
| [Goals](/business/nouns/goal) | The reader's Key Results, each with its value, target and weekly pace |
| Exceptions | Numbers off pace or outside their noise band, with a cause where one is known |
| Asks | What the scopes below asked of this one in their last review |

Verbs travel with each item. A pending ad spend raise carries [pause](/business/nouns/action/pause), [redirect](/business/nouns/action/redirect) and [cancel](/business/nouns/action/cancel); an Approval carries [approve](/business/nouns/approval/approve) and [refuse](/business/nouns/approval/refuse). A person pressing the button and an agent calling the Verb write the same [Decision](/business/nouns/decision).

## Dashboards are data
A Dashboard is a record, not a screen. It names the base it extends, the addresses it fills, its sections in order, and its components, each bound to one record. Five base Dashboards match the five horizons, and the window in an address picks one.

| Horizon | Opens on | Read |
| --- | --- | --- |
| Day | What closes today and what needs you | On every agent wake and every phone glance |
| Week | Key Results at weekly pace, exceptions and asks | In the weekly [Role review](/workflows/processes/role-review) and [office hours](/workflows/processes/office-hours) |
| Quarter | Goals and the tree of Goals they support | At quarterly planning |
| Year | Outside revenue, cost and runway against plan | At the annual plan and the board pack |
| Three years | The Startup's ambition and where the Portfolio stands | At [Strategy](/workflows/processes/strategy) resets |

Each base fills its sections from one catalog: [`MetricTile`](/code/ui/components/metric-tile), [`KeyResult`](/code/ui/components/key-result), [`GoalTree`](/code/ui/components/goal-tree), [`PendingFeed`](/code/ui/components/pending-feed), [`TaskInbox`](/code/ui/components/task-inbox), [`ApprovalSheet`](/code/ui/components/approval-sheet), [`VarianceAlert`](/code/ui/components/variance-alert), [`DataTable`](/code/ui/components/data-table), [`LensGrid`](/code/ui/components/lens-grid) and [`Benchmark`](/code/ui/components/benchmark). Every component renders in all three forms.

A Startup may author its own Dashboard for a scope, such as an investor update. The authored Dashboard changes arrangement, never access: Permissions still decide every number and every button.

## Reports deliver views
[Reports](/systems/reports) schedules a Dashboard and delivers it. The weekly review, the investor update and the board pack are one Dashboard under three Permission filters, each on its own schedule. Reports also watches thresholds and raises an alert when a number crosses one.

permitfeed.dev sells building-permit records through an API. Its Founder gets the weekly Dashboard at 07:00 each week. Its two angel investors get the quarterly Dashboard on the first day of each quarter, with cost lines removed by their Permissions.

## Views for a Startup's own customers
The same engine serves the people a built Startup sells to. Each [Persona](/business/nouns/persona) of an [App](/business/nouns/app) sees a view scoped to one [Customer](/business/nouns/customer). On lensloop.market, a marketplace for used camera gear, a seller's earnings page and a buyer's orders page are both views.

So a customer portal is a view with a narrow scope. It ranks, renders and refreshes like any other, and its buttons call the same Verbs under the same Permissions.

## Next
- [View address](/code/views/view-address): the grammar that names every view.
- [Roll-up](/code/views/roll-up): how a view over many scopes stays small.
- [Agent context](/start/agents/agent-context): the 150-token block every agent wakes with.
- [Renderers](/code/views/renderers): one frame, three renderings, parity by test.