Ballmac UI home

Eval Scorecard

New

The result of testing a model or prompt against a set of cases: pass rate and change from the baseline in words, a trend, what got worse or was fixed, and every case opened to show the question, a good answer and the model's.

v1.0.0Updated Oct 25, 2026Ships with a test
What changed

67%

Evaluation

claude-haiku-5-5 · support prompt v14

4 of 6 cases passedDown 16 points from the baseline

Got worse
1
Fixed
1
Average time
1.4 s
Cost of this run
$0.01
Trend
Pass rate over the last 5 runs, from 50% to 83%

Installation

$ pnpm dlx shadcn@latest add @ballmac/eval-scorecard

Usage

import { EvalScorecard } from "@/components/ballmac/eval-scorecard"

The full example is in the Code tab above.

Examples

Everything passes

100%

Release check

2 of 2 cases passedUp 10 points from the baseline

Got worse
0
Fixed
0

API reference

PropTypeDefault
titlestring—
subject

Which model and prompt were tested, for example "claude-haiku-5-5 · prompt v14".

string—
cases*EvalCase[]—
history

Pass rates (0 to 1) of earlier runs, oldest first, drawn as a trend.

number[]—
baseline

The pass rate (0 to 1) this run is compared with. Defaults to the last item of history.

number—
onRerun

Called with the ids to run again. Reject and the reason is shown.

(ids: string[]) => void | Promise<void>—

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
ResultPass rate and change are text; the ring and trend are decoration with a spoken equivalent
FilterA labelled group of toggle buttons with pressed state and counts
CasesEach case is a heading with a button and aria-expanded; status is a word and an icon
Re-runNative buttons; the result is announced and failures are alerts

Use with AI

cases is [{ id, name, input, expected, actual, status 'pass'|'fail'|'error', previous?, ms?, cost?, tags?, note? }]. previous is the status on the baseline run: a fail that was a pass is 'Got worse', a pass that was a fail is 'Fixed'. history is earlier pass rates (0-1) for the trend; baseline defaults to the last of them. onRerun(ids) adds 'Run the N failed again' and a per-case button; reject and the reason shows. Filters: All, Failed, Got worse. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Eval Scorecard (@ballmac/eval-scorecard) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Reviewing a prompt or model change before shipping it
  • A regression dashboard for an AI feature

Not for

  • Live traffic quality; use a monitoring dashboard
  • Comparing two outputs side by side; use model-compare or prompt-diff

Registry JSON: https://ui.ballmac.com/r/eval-scorecard.json

Credits

Free to use in personal and commercial projects.

Ballmac UI Pro

Need the whole screen, not one piece?

150 premium blocks (dashboards, settings, calendars, mail, shops, onboarding), a private shadcn registry and Figma tokens. Blocks that show data come with loading, empty and error states built in.

Not ready? Try three Pro blocks free

Leave your email and the blocks appear right here, ready to copy. Yours to use in any project.