> ## Documentation Index
> Fetch the complete documentation index at: https://agents.concierca.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Decision Signal Links

> The evidence trail between a decision and the company signals that triggered, support, or contradict it.

## What it is

One row per link between a [Decision](/for-agents/data-model/decisions) and a [Company Signal](/for-agents/data-model/company-signals). A decision usually has one `trigger` signal (the reality that raised the question) and any number of `supporting` or `contradicting` signals. In the app these links render as the **Evidence** tab on a decision.

## How it gets data

Written by the curator agent (or a person) with the `insert_decision_signal_links` grant, normally in the same run that creates the decision. Rows are immutable apart from `relation_type`; no ingest endpoint.

## Fields

| Field           | Label     | Type     | Writable    | Description                                |
| --------------- | --------- | -------- | ----------- | ------------------------------------------ |
| `decision_id`   | Decision  | uuid     | create-only | The decision — joins to `decisions.id`     |
| `signal_id`     | Signal    | uuid     | create-only | The signal — joins to `company_signals.id` |
| `relation_type` | Relation  | status   | create/edit | `trigger` / `supporting` / `contradicting` |
| `created_at`    | Linked At | datetime | read-only   | When the link was made — hidden by default |

<Note>
  Carries the system columns `id`, `tenant_id`, and `workspace_id`; tenant isolation is enforced automatically.
</Note>

## Query it

```json theme={null}
{
  "method": "tools/call",
  "params": {
    "name": "data_query",
    "arguments": {
      "view_slug": "decision_signal_links",
      "filters": { "decision_id": "<decision uuid>" },
      "select_fields": ["signal_id", "relation_type"],
      "limit": 50
    }
  }
}
```
