# Evidence

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

> Evidence is a recorded quote, reading, or artifact that supports or refutes a claim, graded as behavior, commitment, or opinion.

Evidence is a recorded quote, reading, or artifact that supports or refutes a claim, graded as behavior, commitment, or opinion. Behavior outranks commitment, and an opinion weighs zero.

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `grade` | `string` | Yes | One of `Behavior`, `Commitment`, or `Opinion`. An Opinion weighs zero. |
| `quote` | `text` | No | The words or reading, verbatim. |
| `source` | `string` | No | Who or what it came from: an Interview, an Experiment, or a Metric reading. |
| `binds` | `string` | No | The slot it grades, as `Hypothesis#<slot>`. |
| `force` | `string` | No | One of `push`, `pull`, `anxiety`, or `habit`: the switching force it shows. |
| `observedAt` | `datetime` | No | When it was observed. |
| `distinctIcpMembers` | `integer` | No | How many distinct ICP members it represents. |
| `outside` | `boolean` | No | Computed: true when its source shares no owner, Studio account, Agreement, or sibling chain with the Startup. |
| `askedBy` | [Party](/business/nouns/party) | No | The Customer or Contact who asked through an App, the Portal or an Agent; their ask is Opinion grade. |
| `stance` | `string` | No | Whether it supports or refutes the slot it binds; a cancel refutes the slot its reason tests. |

## Object
```json
{
  "$id": "https://api.sb/routewise.dev/evidence/evidence_1",
  "$type": "Evidence",
  "grade": "Behavior",
  "quote": "Example quote",
  "source": "Example source",
  "binds": "Example binds",
  "force": "push",
  "observedAt": "2026-10-22T12:00:00Z",
  "distinctIcpMembers": 1,
  "outside": true,
  "askedBy": "party_1",
  "stance": "supports"
}
```

## Relationships
- <a id="rel-bears-on"></a>A piece of Evidence **bears on** many [Hypotheses](/business/nouns/hypothesis): Evidence supports or refutes [Hypotheses](/business/nouns/hypothesis); the strongest outside Evidence sets each Hypothesis grade. `bearsOn`, inverse [`evidence`](/business/nouns/hypothesis#rel-evidence).
- <a id="rel-cited-by"></a>A piece of Evidence **is cited by** many [Disputes](/business/nouns/dispute): the Evidence each side submits on the [Dispute](/business/nouns/dispute), frozen once submitted. `citedBy`, inverse [`cites`](/business/nouns/dispute#rel-cites).
- <a id="rel-documents"></a>A piece of Evidence **documents** many [Problems](/business/nouns/problem): Evidence shows a [Problem](/business/nouns/problem) in the words or behavior of the [ICP](/business/nouns/icp). `documents`, inverse [`documentedBy`](/business/nouns/problem#rel-documented-by).
- <a id="rel-yielded-by"></a>A piece of Evidence **is yielded by** one [Interview](/business/nouns/interview): an [Interview](/business/nouns/interview) captures quotes and commitments, each graded as Evidence. `yieldedBy`, inverse [`yields`](/business/nouns/interview#rel-yields).

## Verbs
| Verb | Description | Subject | Event | Class |
| --- | --- | --- | --- | --- |
| <a id="create"></a>[Evidence.create](/business/nouns/evidence/create) | Creates an Evidence. Inherited from [Noun](/business/nouns/noun). | None. | `Evidence.created` | Two-way: `try`, `send`, `do` |
| <a id="get"></a>[Evidence.get](/business/nouns/evidence/get) | Returns one Evidence by id. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="list"></a>[Evidence.list](/business/nouns/evidence/list) | Returns Evidence, newest first, one page at a time. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |

A piece of Evidence is kept forever and never edited: it has no `update` or `delete`.

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

| Operation | `owner` | `admin` | `member` | `viewer` |
| --- | --- | --- | --- | --- |
| `Evidence.create` | Yes | Yes | Yes | No |
| `Evidence.get` | Yes | Yes | Yes | Yes |
| `Evidence.list` | Yes | Yes | Yes | Yes |

## Call it

**Ask**

```text
Add an evidence to LedgerLark.
```

**API**

```bash
curl -X POST https://api.sb/ledgerlark.com/evidence \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"grade":"Behavior"}'
```

```json
{
  "api": "https://api.sb/ledgerlark.com",
  "evidence": {
    "$id": "https://api.sb/ledgerlark.com/evidence/evidence_1",
    "$type": "Evidence",
    "grade": "Behavior"
  },
  "action": {
    "$id": "https://api.sb/ledgerlark.com/actions/action_1",
    "operation": "Evidence.create",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/ledgerlark.com/actions/action_1"
  }
}
```

**SDK**

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

const evidence = await $.Evidence.create({ grade: 'Behavior' })
```

**CLI**

```bash
npx startup-builder do Evidence.create --json '{"grade":"Behavior"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Evidence.create({ grade: 'Behavior' })"
  }
}
```

## Example
A dental office manager shows her log of 60 no-shows a month at $180 each. The log is Evidence with `grade: Behavior` on the [Problem](/business/nouns/problem), and it bears on the pricing [Hypothesis](/business/nouns/hypothesis).