\begin{table}[htbp]\centering \caption{Matching validation: stratified sample (60 pairs per tier) and UPC ground truth}\label{tab:validation} \small \begin{adjustbox}{max width=\textwidth} \begin{tabular}{lrrrrrrrrr} \toprule Tier & n & Same & Different & Unsure & Precision & CI low & CI high & UPC precision & UPC recall \\ \midrule A & 60 & 60 & 0 & 0 & 1.000 & 0.940 & 1.000 & 1.000 & \\ B & 60 & 60 & 0 & 0 & 1.000 & 0.940 & 1.000 & 0.932 & 0.982 \\ C & 60 & 25 & 30 & 5 & 0.417 & 0.301 & 0.543 & 0.870 & 0.987 \\ D & 60 & 59 & 0 & 1 & 0.983 & 0.911 & 0.997 & & \\ \bottomrule \end{tabular} \end{adjustbox} \begin{minipage}{\textwidth}\footnotesize\vspace{2pt} Precision = share labelled SAME (Wilson 95\% CI); labels by Claude (claude-opus-5-5) as second annotator with full operator review of every pair; PI adjudication pending. UPC columns: precision/recall of the tier's text rule on all Metro\,$\times$\,Super~C candidate pairs within brand\,$\times$\,package blocks, where the shared GS1 code is the truth (B: identical token sets; C: token-sort ratio $\ge 0.90$). Tier D has no UPC benchmark. \end{minipage} \end{table}