# Issue.estimated

URL: /business/events/Issue.estimated · Id: `event:Issue.estimated`

> Emitted each time an Issue is estimated.

[Issue.estimate](/business/nouns/issue/estimate) emits `Issue.estimated` when it completes on an [Issue](/business/nouns/issue).

| Property | Value |
| --- | --- |
| Emitted by | [Issue.estimate](/business/nouns/issue/estimate) |
| Noun | [Issue](/business/nouns/issue) |
| Wakes | None. |

### Payload
Each delivery is an [Event](/business/nouns/event) record. `data` holds what [Issue.estimate](/business/nouns/issue/estimate) returns.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | Yes | `Issue.estimated`. |
| `at` | `datetime` | Yes | When it happened. |
| `seq` | `integer` | No | Its position in the namespace, one more than the Event before; any seq is a cursor into the history. |
| `data` | `json` | Yes | The Thing as the Action left it. |
| `data.issue` | [Issue](/business/nouns/issue) | Yes | The estimated Issue. |
| `data.issue.status` | `string` | Yes | One of `pending`, `done`, `failed`, `canceled`, or `refused`. |
| `data.issue.reason` | `string` | No | Why a pending Action waits: `queued`, `running`, `retrying`, `awaitingWorker`, `awaitingInput`, `awaitingSource`, `awaitingAction`, or `awaitingTime`. |
| `data.issue.mode` | `string` | Yes | How the caller invoked it: `try`, `send`, or `do`. |
| `data.issue.by` | [Worker](/business/nouns/worker) | No | The Worker that performed it. |
| `data.issue.for` | [Party](/business/nouns/party) | No | The Party it was done on behalf of. |
| `data.issue.via` | `string` | No | The Interface or request it arrived through. |
| `data.issue.on` | `string` | No | The Action or Event that caused it, such as the failed attempt a retry follows. |
| `data.issue.thing` | `string` | No | The record, at the Version the Action was decided against. |
| `data.issue.input` | `json` | No | The input it was called with. |
| `data.issue.createdAt` | `datetime` | No | When it was called. |
| `data.issue.reserved` | `money` | No | The most this Action may cost, held against its Limits from the check until it settles, billed misses included. |
| `data.issue.due` | `datetime` | No | When the Task is due. |
| `data.issue.priority` | `integer` | No | Its rank in the inbox, highest first. |
| `data.issue.recurrence` | `string` | No | The schedule a recurring duty repeats on. |
| `data.issue.kind` | `string` | No | One of `bug`, `request`, or `question`. |
| `data.issue.severity` | `string` | No | Set by triage; a vulnerability takes `critical`, `high`, `medium` or `low`, which sets `due`. An Incident keeps its own scale. |
| `data.issue.advisory` | `string` | No | For a vulnerability: the public advisory it matches, with the affected package and range. |

### Example
```json
{
  "$id": "https://api.sb/patentpad.com/events/event_1",
  "$type": "Event",
  "name": "Issue.estimated",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "issue": {
      "$id": "https://api.sb/patentpad.com/issues/issue_1",
      "$type": "Issue",
      "status": "pending",
      "reason": "queued",
      "mode": "try",
      "by": "worker_1",
      "for": "party_1",
      "via": "API",
      "on": "Invoice.overdue",
      "thing": "invoice_1@v3",
      "input": {},
      "createdAt": "2026-10-22T12:00:00Z",
      "reserved": {
        "amount": 499,
        "currency": "USD"
      },
      "due": "2026-10-22T12:00:00Z",
      "priority": 1,
      "recurrence": "Weekly on Friday",
      "kind": "bug",
      "severity": "critical",
      "advisory": "GHSA-xxxx-xxxx-xxxx"
    }
  },
  "seq": 1
}
```