---
title: "Get metric improvement progress"
method: GET
path: "/test_framework/metric-reviews/process_feedbacks_progress/"
tags: ["test_framework"]
---

# Get metric improvement progress

`GET /test_framework/metric-reviews/process_feedbacks_progress/`

## Request

- Base URL: `https://api.cekura.ai`
- URL: `https://api.cekura.ai/test_framework/metric-reviews/process_feedbacks_progress/`
- Auth: one of:
  - API key in header `X-CEKURA-API-KEY`
  - HTTP bearer
  - HTTP bearer

Poll the progress of metric optimization from feedback processing. Returns the improved metric description and evaluation trigger when complete.

## Query parameters

- `progress_id` string, required
- `agent_id` integer
- `project_id` integer

## Response `200`

- ProcessFeedbacksResponse
  - `improved_metric_description` string, required: Improved metric description
  - `improved_evaluation_trigger` string, required: Improved evaluation trigger. Interpretation depends on improved_trigger_kind: 'always' (literal) → run on every example; Python source → trigger.py from the sandbox (when improved_trigger_kind='custom_code'); LLM-judge prompt otherwise.
  - `improved_trigger_kind` 'always' | 'llm_judge' | 'custom_code': Tells the frontend how to interpret improved_evaluation_trigger. Set to 'custom_code' when meta-harness produced an optimized Python trigger; 'always' when no trigger gating is needed. * `always` - Always * `llm_judge` - LLM Judge * `custom_code` - Custom Code
  - `trigger_type` 'llm_judge' | 'custom_code': Type of evaluation trigger (llm_judge or custom_code) * `llm_judge` - LLM Judge * `custom_code` - Custom Code
  - `metric_description_program` unknown
  - `metric_description_variables` unknown[]: Variables used in metric description
    - unknown
  - `evaluation_trigger_program` unknown
  - `evaluation_trigger_variables` unknown[]: Variables used in evaluation trigger
    - unknown
  - `review_results` ReviewResult[]: Evaluation results for each test set
    - `review_id` integer, required
    - `test_set_id` integer, required
    - `actual_value` unknown
    - `explanation` unknown
    - `success` boolean, required
    - `error` string, nullable
  - `custom_code` string: Optimized Python code (meta-harness output). When present, metric should switch to custom_code type.
  - `type` 'basic' | 'custom_prompt' | 'custom_code' | 'llm_judge': Suggested metric type after optimization (custom_code if meta-harness produced code) * `basic` - Basic (Deprecated in favor of LLM Judge) * `custom_prompt` - Custom Prompt ( Deprecated in favor of LLM Judge) * `custom_code` - Custom Code * `llm_judge` - LLM Judge
  - `feedback_edits` unknown[]: User-answer-driven feedback corrections applied to metric reviews during optimization
    - unknown
  - `unauthorized_label_changes` unknown[]: Expected-value changes detected in the run that lacked explicit user approval
    - unknown
  - `unresolved_samples` unknown[]: Samples the optimizer could not resolve, each with a verdict (noise / ambiguous label / prompt limit), the observed pass rate across repeated evaluations, and a user-facing explanation of why 100% accuracy was not reachable for it.
    - unknown
  - `optimization_summary` string: Plain-language summary of what the optimized metric does, shown in the review dialog so the user can check intent without reading the code.
  - `old_score` unknown
  - `new_score` unknown
  - `estimated_cost_per_sample` unknown

## Changes

- **2026-11-03** `a6fb6a739212`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/cekura/apis/cekura-api/changes/test_framework/metric-reviews/process_feedbacks_progress/get.md)

---

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