# Readout

URL: /business/nouns/readout · Id: `noun:readout`

> A Readout is an Experiment’s result per Variant on its Metric, with the sample size, the interval, and how far the number can be trusted.

A Readout is an [Experiment](/business/nouns/experiment)’s result per [Variant](/business/nouns/variant) on its [Metric](/business/nouns/metric), with the sample size, the interval, and how far the number can be trusted.

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `value` | `number` | Yes | The Metric’s value for the Variant. |
| `n` | `integer` | Yes | How many exposed units it counts. |
| `interval` | `json` | No | The low and high bounds of the estimate. |
| `readability` | `string` | Yes | One of `A`, `B`, `C`, or `inadmissible`: how far the number can be trusted. |
| `pooled` | `boolean` | No | True when exposures from sibling Startups or earlier Portfolio results are pooled in. |

## Object
```json
{
  "$id": "https://api.sb/quietcopy.com/readouts/readout_1",
  "$type": "Readout",
  "value": 1,
  "n": 1,
  "interval": {},
  "readability": "A",
  "pooled": true
}
```

## Relationships
- <a id="rel-reads"></a>A Readout **reads** one [Experiment](/business/nouns/experiment): the [Experiment](/business/nouns/experiment) the result belongs to; the learn step drafts the next [Variant](/business/nouns/variant) from it. `reads`, inverse [`readouts`](/business/nouns/experiment#rel-readouts).
- <a id="rel-scores"></a>A Readout **scores** one [Variant](/business/nouns/variant): the [Variant](/business/nouns/variant) the number describes. `scores`, inverse [`scoredBy`](/business/nouns/variant#rel-scored-by).

## Verbs
| Verb | Description | Subject | Event | Class |
| --- | --- | --- | --- | --- |
| <a id="create"></a>[Readout.create](/business/nouns/readout/create) | Creates a Readout. Inherited from [Noun](/business/nouns/noun). | None. | `Readout.created` | Two-way: `try`, `send`, `do` |
| <a id="get"></a>[Readout.get](/business/nouns/readout/get) | Returns one Readout by id. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="list"></a>[Readout.list](/business/nouns/readout/list) | Returns Readouts, newest first, one page at a time. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="update"></a>[Readout.update](/business/nouns/readout/update) | Changes the given properties of a Readout. Inherited from [Noun](/business/nouns/noun). | None. | `Readout.updated` | Two-way: `try`, `send`, `do` |
| <a id="delete"></a>[Readout.delete](/business/nouns/readout/delete) | Deletes a Readout; its history is kept. Inherited from [Noun](/business/nouns/noun). | None. | `Readout.deleted` | One-way: `send`, `do` |

## Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.

| Operation | `owner` | `admin` | `member` | `viewer` |
| --- | --- | --- | --- | --- |
| `Readout.create` | Yes | Yes | Yes | No |
| `Readout.get` | Yes | Yes | Yes | Yes |
| `Readout.list` | Yes | Yes | Yes | Yes |
| `Readout.update` | Yes | Yes | Yes | No |
| `Readout.delete` | Yes | Yes | Yes | No |

## Call it

**Ask**

```text
Add a readout to TutorLoop.
```

**API**

```bash
curl -X POST https://api.sb/tutorloop.com/readouts \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":1,"n":1,"readability":"A"}'
```

```json
{
  "api": "https://api.sb/tutorloop.com",
  "readout": {
    "$id": "https://api.sb/tutorloop.com/readouts/readout_1",
    "$type": "Readout",
    "value": 1,
    "n": 1,
    "readability": "A"
  },
  "action": {
    "$id": "https://api.sb/tutorloop.com/actions/action_1",
    "operation": "Readout.create",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/tutorloop.com/actions/action_1"
  }
}
```

**SDK**

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

const readout = await $.Readout.create({ value: 1, n: 1, readability: 'A' })
```

**CLI**

```bash
npx startup-builder do Readout.create --json '{"value":1,"n":1,"readability":"A"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Readout.create({ value: 1, n: 1, readability: 'A' })"
  }
}
```

## Example
A tutoring [Startup](/business/nouns/startup) reads its two-week pricing [Experiment](/business/nouns/experiment): the challenger converts 4.1% against 3.2% for the control, on 1,900 [Exposures](/business/nouns/exposure), at readability `B`.