Skip to content

Evaluation: Add latency summary data #1253

Open

Description

@Ayush8923

Is your feature request related to a problem?
Evaluation runs provide cost information for OpenAI calls but lack latency data. This prevents us from identifying which configurations or prompts are slower, impacting our ability to optimize evaluations effectively.

Describe the solution you'd like
Add a latency summary to each evaluation run next to the cost, including:

  • Average time of OpenAI calls in milliseconds, plus the number of calls for each step:
    • response: generating the answer
    • embedding: similarity scoring (v1 runs)
    • judge: LLM-as-judge scoring (v2 runs)
  • One overall average across all successful calls.
  • Display this data on existing run endpoints for frontend integration.
  • Ensure runs complete even if latency calculation fails.
Original issue

Is your feature request related to a problem? Please describe.
Evaluation runs show how much the OpenAI calls cost, but not how long they took. When we compare configs or prompts, we can't tell whether one setup is slower than another, or which step of the evaluation is slow: generating answers, embeddings, or judging. Response time is one of the main reasons fast evaluations exist, but we don't report it anywhere.

Describe the solution you'd like
Add a latency summary to each evaluation run, next to the existing cost:

  • The average time of an OpenAI call in milliseconds, plus the number of calls, for each step:
    • response: generating the answer for each question
    • embedding: similarity scoring (v1 runs)
    • judge: LLM-as-judge scoring (v2 runs)
  • One overall average across all calls in the run.
  • Only successful calls count. Failed calls and questions blocked by a guardrail are left out.
  • Shown on the existing run endpoints, so the frontend can display it on the run card next to cost.
  • If working out latency fails, the run should still complete.

Describe alternatives you've considered

  • Storing latency inside the cost field. Rejected: a problem with one could wipe out the other. Keeping them separate keeps them independent.
  • Using the total batch duration for batch runs. Rejected: batch time is mostly OpenAI queue time, not call time, so it would be misleading. Batch runs will show no latency.
  • Adding p95 / max / per-question latency now. Deferred: we'll start with averages. The call counts and per-question timings are stored so these can be added later.

Activity

  1. changed the title [-]Evaluation: Show average OpenAI call latency on evaluation runs[/-] [+]Evaluation: Add latency summary data[/+] on Oct 14, 2026
  2. moved this from To Do to In Progress in Kaapi-devon Oct 14, 2026
  3. self-assigned this
    on Oct 14, 2026
  4. moved this from In Progress to In Review in Kaapi-devon Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

  • Status
    In Review

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions