---
title: "Get Agent Score causes"
method: GET
path: "/v1/projects/{projectSlug}/agent-score/causes"
tags: ["Agent Score"]
---

# Get Agent Score causes

`GET /v1/projects/{projectSlug}/agent-score/causes`

Returns ranked causes per dimension and Outcome and Safety issue summaries for today's UTC date. Published scores retain the evidence from their original computation. When no retained explanation is available, the response may use matching evidence from another computation for the same date, or report an explicit absence.

## Path parameters

- `projectSlug` string, required — Project slug (human-readable identifier)

## Response `200`

Evidence for today, retained with the published score when available, or an explicit absence

- AgentScoreCauses
  - `status` 'ready' | 'notComputed', required — `notComputed` when no matching explanation is available for today; any published score remains valid.
  - `explanation` AgentScoreExplanation, nullable, required — Evidence for today's UTC date, retained with the published score when available, or `null` if unavailable.
    - `computedAt` string, required — When this evidence was computed, as an ISO-8601 timestamp. Retained explanations keep the original score computation time.
    - `scoringVersion` string, required — Scoring version the evidence was read under.
    - `windowDays` integer, required — Length in days of the window the evidence covers.
    - `eligibleSessionCount` integer, required — Production sessions in that window.
    - `attribution` AgentScoreDimensionAttribution[], required — Per-dimension cause rows for the dimensions that support a counterfactual.
      - `scoreDimension` 'outcome' | 'reliability' | 'cost' | 'speed' | 'safety', required — Dimension explained.
      - `rows` AgentScoreCauseRow[], required — Causes, most responsible first.
        - `causeId` string, required — Stable identifier of the metric, claim or finding kind behind this row.
        - `label` string, required — Human-readable name for the cause.
        - `attributedDeficit` number, required — Points of the dimension's deficit attributed to this cause. Attributed deficits across a dimension add up; they are not a prediction of what fixing it returns.
        - `fixGain` number, required — Points the dimension would recover if this cause alone disappeared. Fix gains overlap between causes and must never be summed.
        - `evidence` 'measured' | 'associated', required — `measured` when the reader observed the effect directly; `associated` when it was estimated from matched comparison sessions and no causal claim is made.
        - `nativeEffect` object, required — The effect in the dimension's own terms, which is what the row shows beside the points.
          - `value` number, required — Size of the effect in its own unit, before it became score points.
          - `unit` string, required — Unit the value is in, such as nanoseconds, sessions, or a Cost family.
        - `observationCount` integer, required — Independent observations behind the row. Coverage context, not a score.
        - `destination` 'sessions' | 'tools' | 'memory' | 'cost' | 'signals' | 'null', nullable, required — Product section that owns this evidence, or `null` when nothing specific can be opened.
      - `residual` number, required — Points of the deficit no named cause accounts for, including estimation error.
      - `totalDeficit` number, required — The dimension's whole distance from healthy, in points.
      - `method` 'exact' | 'sampled', required — `sampled` when there were too many causes to attribute exactly.
      - `approximationError` number, nullable, required — Standard error of the sampled shares in points, or `null` when attribution was exact.
    - `outcomeIssues` AgentScoreIssueRow[], required — Where task failures concentrate. Reach only; these rows carry no share of the score.
      - `issueKey` string, required — Stable identifier for the issue.
      - `label` string, required — Human-readable name for the issue.
      - `signalIds` string[], required — Signals this issue was observed through, if any.
      - `estimatedReach` number, nullable, required — Sessions the issue touched, corrected for how often it could be observed. `null` when the correction is unknown.
      - `estimatedAdverseReach` number, nullable, required — Sessions it touched that went badly, corrected the same way. `null` when unknown.
      - `examinedSessions` integer, required — Raw sessions examined. Coverage context, never a ranking key.
      - `examinedAdverseSessions` integer, required — Raw examined sessions that went badly.
      - `ranked` boolean, required — `false` when a required joint observation probability was unknown, so the row explains without claiming a position.
    - `safetyConfirmedHarm` AgentScoreIssueRow[], required — Issues where the agent caused confirmed harm.
      - `issueKey` string, required — Stable identifier for the issue.
      - `label` string, required — Human-readable name for the issue.
      - `signalIds` string[], required — Signals this issue was observed through, if any.
      - `estimatedReach` number, nullable, required — Sessions the issue touched, corrected for how often it could be observed. `null` when the correction is unknown.
      - `estimatedAdverseReach` number, nullable, required — Sessions it touched that went badly, corrected the same way. `null` when unknown.
      - `examinedSessions` integer, required — Raw sessions examined. Coverage context, never a ranking key.
      - `examinedAdverseSessions` integer, required — Raw examined sessions that went badly.
      - `ranked` boolean, required — `false` when a required joint observation probability was unknown, so the row explains without claiming a position.
    - `safetyExposure` AgentScoreIssueRow[], required — Hostile or sensitive content the agent received. Exposure is context and never lowers Safety.
      - `issueKey` string, required — Stable identifier for the issue.
      - `label` string, required — Human-readable name for the issue.
      - `signalIds` string[], required — Signals this issue was observed through, if any.
      - `estimatedReach` number, nullable, required — Sessions the issue touched, corrected for how often it could be observed. `null` when the correction is unknown.
      - `estimatedAdverseReach` number, nullable, required — Sessions it touched that went badly, corrected the same way. `null` when unknown.
      - `examinedSessions` integer, required — Raw sessions examined. Coverage context, never a ranking key.
      - `examinedAdverseSessions` integer, required — Raw examined sessions that went badly.
      - `ranked` boolean, required — `false` when a required joint observation probability was unknown, so the row explains without claiming a position.

## Other responses

- `400` — Validation error
- `401` — Unauthorized
- `404` — Not found

## Changes

- **2026-09-12** `c726d219e721` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/latitude-dev/apis/latitude/changes/v1/projects/:projectSlug/agent-score/causes/get.md)

---

[API](https://skmtc.dev/latitude-dev/apis/latitude.md) · [All operations](https://skmtc.dev/latitude-dev/apis/latitude/llms.txt) · [OpenAPI document](https://skmtc.dev/latitude-dev/apis/latitude/revisions/44d01c7b9918?raw)
