/**
* Hero aggregates for a published run: population-scale counts followed by the
* headline quality metrics. Precision/recall are annotated with sampling-verified
* confidence intervals when review results exist.
*/
import Box from '@mui/material/Box';
import Chip from '@mui/material/Chip';
import type { EvaluationRunInfo, MetricEstimate, ReviewState } from '../../types/megaeval';
import { fmtCompact, queryEvaluations } from '../../services/megaeval';
import { usePoll } from '../../services/labeleval';
import { MetricCard, fmtNum, fmtPct } from '../labeleval/shared';
import { QueryBadge, rowNum } from './shared';
import { ExplainTip } from '../help/InfoTip';
function ciSub(est: MetricEstimate | undefined): string | null {
if (!est) return null;
return `95% CI ${fmtPct(est.ci_low)}–${fmtPct(est.ci_high)}, n=${est.n_reviewed.toLocaleString()} reviewed`;
}
const VERIFIED_CHIP = (
);
export default function HeroRow({
run,
review,
refreshKey,
}: {
run: EvaluationRunInfo;
review: ReviewState | null;
refreshKey: number;
}) {
const h = run.headline;
// Reviewed / verified totals come from the aggregate query API (also shows provenance).
const totals = usePoll(
() =>
queryEvaluations({
evaluation_id: run.run_id,
metrics: ['n', 'reviewed', 'verified', 'review_coverage'],
}),
null,
[run.run_id, refreshKey]
);
const totalsRow = totals.data?.rows[0];
const reviewed = totalsRow ? rowNum(totalsRow, 'reviewed') : null;
const verified = totalsRow ? rowNum(totalsRow, 'verified') : null;
const results = review?.results ?? null;
const precisionCi = ciSub(results?.precision);
const recallCi = ciSub(results?.recall);
return (
{`HLL est ${fmtCompact(h.containers_hll_estimate)} (approx)`}
) : (
'exact'
)
}
/>
human reviews
}
accent="#42a5f5"
/>
{fmtPct(results?.precision.estimate)} ({precisionCi})
{VERIFIED_CHIP}
) : (
'point estimate'
)
}
/>
{fmtPct(results?.recall.estimate)} ({recallCi})
{VERIFIED_CHIP}
) : (
'point estimate'
)
}
/>
);
}