---
title: "Read outcome-based policy effectiveness"
method: GET
path: "/api/decision/policies/{policy_id}/effectiveness"
tags: ["Effectiveness"]
---

# Read outcome-based policy effectiveness

`GET /api/decision/policies/{policy_id}/effectiveness`

## Request

- Base URL: `https://www.decide.fyi`
- URL: `https://www.decide.fyi/api/decision/policies/{policy_id}/effectiveness`
- Auth: API key in header `x-api-key`

Returns policy_effectiveness_v1 metrics derived from the latest Decision Outcome per decision within the caller API-key scope. Proxy false-positive/false-negative rates are outcome proxies, not causal ML claims.

## Path parameters

- `policy_id` string, required

## Query parameters

- `policy_version` string
- `limit` integer
- `min_sample` integer

## Response `200`

Policy effectiveness metrics

- PolicyEffectiveness
  - `ok` boolean, required
  - `policy_effectiveness_version` 'policy_effectiveness_v1', required
  - `generated_at` string
  - `policy_id` string, required
  - `policy_version` string, nullable
  - `source` 'decision_outcomes'
  - `minimum_sample_size` integer
  - `decisions_analyzed` integer, required
  - `outcomes_analyzed` integer
  - `distinct_decisions` integer
  - `by_status` object
  - `by_verdict` object
  - `metrics` object, required
    - `success_rate` number, nullable
    - `failure_rate` number, nullable
    - `revert_rate` number, nullable
    - `review_rate` number, nullable
    - `skipped_rate` number, nullable
    - `unknown_rate` number, nullable
    - `terminal_coverage` number, nullable
    - `executed_rate` number, nullable
  - `proxy_quality` object
    - `estimated_false_positive_rate` number, nullable
    - `estimated_false_negative_rate` number, nullable
    - `note` string
  - `effectiveness_score` number, nullable
  - `confidence` number, nullable
  - `status` 'scored' | 'insufficient_data'
  - `recommendation` 'insufficient_data' | 'review_policy' | 'monitor' | 'healthy', required
  - `window` object
  - `data_quality` object
  - `effectiveness_hash` string, required

## Other responses

- `401`: API key missing, invalid, inactive, or unauthorized

---

[API](https://skmtc.dev/decide/apis/decide-decision-api.md) · [All operations](https://skmtc.dev/decide/apis/decide-decision-api/llms.txt) · [OpenAPI document](https://skmtc.dev/decide/apis/decide-decision-api/revisions/caf1d3069dfd?raw)
