confidence label and a confidence_details object. The label is
a summary; the details are what you should actually build logic against.
The fields
sample_std_dev is the most directly useful of these. It tells you how much the pipeline
disagreed with itself on the same asset. A score whose repetitions ranged widely is a soft
score regardless of where it landed in the ordering.
The 0.30 rule
Kettio treats any gap smaller than 0.30 as a close pair. That is the threshold at which close-pair refinement is willing to run a pairwise panel, and it is a reasonable line for your own logic too.When refinement already ran
If you leftrefine_close_pairs at its default, Kettio has already done some of this for you.
It finds close pairs, sorts them by how close they are, and refines at most 6 pairs per
request.
Check these fields before deciding whether you still need to escalate:
A
panel_outcome showing a flip is informative: the SSR ordering and the pairwise panel
disagreed, and the panel won. A pair that was close but sat outside the top 6 was never
refined at all — the gap is still soft even though nothing in the response flags it.
A usable decision rule
1
Reject the batch if assets failed
summary.assets_failed > 0 means the ordering is incomplete.2
Compare the top gap against 0.30
Above it, treat rank 1 as leading. Below it, treat the top assets as tied.
3
Sanity-check the spread
If
sample_std_dev on either asset is large relative to the gap, the gap is inside the
noise even if it clears 0.30.4
Escalate ties rather than breaking them
Send the pair to the Pairwise API, or report both and let a human choose.