Skip to main content

TypeAlias.ImportMappingEvidence

type ImportMappingEvidence = ObjectEnum<typeof ImportMappingEvidence>;

How much a suggested correspondence is corroborated — a different question from who produced it (ImportMappingOrigin).

A class, not a number. The suggestion is scored on a nine-sample corpus holding a single false mapping, which cannot calibrate a continuous confidence; and the endpoint is an MCP tool, so publishing one would invite every client to invent its own threshold and turn a retuning into a silent behaviour change for third parties. A class also carries what a number cannot: what to check.

Corroboration comes from confronting the model's answer with the deterministic matcher, which costs no model call. Two limits to keep in mind: the two are not independent (the model reads the label the matcher reads, plus the values and the field descriptions), so their agreement mostly certifies that the label was unambiguous; and contested is the one class the corpus never exhibits — confirmed (38), unaided (6), unopposed (14) and inadmissible (1) are all observed, so its rank alone is a defensible assumption rather than a measurement.

  • confirmed: the matcher independently proposes the same source. The strongest available grounds, and the ordinary case.
  • unaided: the matcher had no comparable label anywhere in the sample — a headerless CSV. Its silence says nothing about any single correspondence, so this is not a doubt: it is where the model's advantage over the matcher lives, and the corpus maps six correct correspondences this way.
  • unopposed: the matcher could read labels and still made no proposal for this destination. Nobody objects, nobody corroborates.
  • contested: another candidate has a claim on this destination — a label the matcher could not tell from a namesake, or a different source it proposed instead. Names the confusions the matcher is built to fear: a factory name reaching the product title, a packaging weight reaching the product's.
  • inadmissible: the values rule the correspondence out — a serialized collection on a scalar field, a lone scalar on a whole-array field, text on a numeric field. Never applied automatically, whatever its origin: this is not a weak correspondence but one that fails passport validation on every row.