---
title: "Generate Savings Report"
method: POST
path: "/api/v1/agents/{agent_id}/savings-report"
tags: ["savings-report"]
---

# Generate Savings Report

`POST /api/v1/agents/{agent_id}/savings-report`

## Request

- Base URL: `https://api.badgeia.com`
- URL: `https://api.badgeia.com/api/v1/agents/{agent_id}/savings-report`
- Auth: none declared

## Path parameters

- `agent_id` string, uuid, required

## Request body

- SavingsReportGenerateRequest
  - `window_days` integer
  - `pass_rate_tolerance` number
  - `k` integer

## Response `201`

Successful Response

- SavingsReportCreated
  - `report_id` string, uuid, required
  - `payload` SavingsReportPayload, required: The signed document. Everything here is covered by the signature.
    - `report_version` 1
    - `report_id` string, uuid, required
    - `agent_id` string, uuid, required
    - `root_agent_id` string, uuid, required
    - `generated_at` string, date-time, required
    - `window_days` integer, required
    - `pass_rate_tolerance` number, required
    - `k` integer, required
    - `projection` 'owner' | 'public', required
    - `pass_k_gate` 'applied' | 'unavailable', required
    - `basis` string, required
    - `baseline` SavingsBaseline, required
      - `agent_id` string, uuid, required
      - `agent_name` string, required
    - `variants` SavingsVariant[], required
      - `agent_id` string, uuid, required
      - `agent_name` string, required
      - `model` string, nullable
      - `run_count` integer, required
      - `pass_rate` number, nullable
      - `pass_k` object, nullable
      - `latency_p50_ms` integer, nullable
      - `latency_p95_ms` integer, nullable
      - `measured_cost_per_run_usd` number, nullable
      - `measured_run_count` integer
      - `claimed_cost_per_run_usd` number, nullable
      - `cost_basis` string
      - `ineligible_run_count` integer
      - `simulated_run_count` integer
    - `cheapest_passing` SavingsCheapest
      - `agent_id` string, uuid, required
      - `agent_name` string, required
      - `measured_cost_per_run_usd` number, required
    - `observed_monthly_runs` number, required
    - `projected_monthly_saving_usd` number, nullable
    - `excluded` SavingsExcluded, required
      - `ineligible_runs` integer, required
      - `simulated_runs` integer, required
  - `signature` string, required
  - `key_id` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/badgeia/apis/badge.md) · [All operations](https://skmtc.dev/badgeia/apis/badge/llms.txt) · [OpenAPI document](https://skmtc.dev/badgeia/apis/badge/revisions/7e7f7fee8b77?raw)
