Part 4 of 7 · 6 min

The column that gets no target

The most valuable entry in a migration map is the one that refuses to exist. Part 4 of the Proof Series: mutual-best assignment, the orphan surfaced rather than forced, and why an absence must be decided, not discovered.

Part 3 ended with one column carrying nothing. Danubia's legacy retention flag holds a ranked candidate list in the target system, and every candidate on it means something else. This part is about what happens next, because what happens next is where most migrations choose between honesty and comfort.

The comfortable move takes two seconds. Map the flag to the least-bad candidate, mark the row complete, and let the column count toward progress. The mapping is wrong, but it is wrong quietly, in a file with four thousand other rows. Nobody looks at it again until something downstream misbehaves.

Our platform does not offer the two-second move, and this part explains the machinery that removes it.

Each target claimed once

Start with how the assignment works, because the orphan is not an accident of matching. It is a direct product of the assignment rule.

Candidates are scored in both directions. A source column has preferences over targets, and a target field has preferences over sources. A pair forms only when the preference is mutual. This source ranks that target first, and that target ranks this source first among the sources still unclaimed. Then both leave the pool, and the assignment continues with what remains.

The rule that does the honest work is the simplest one. Each target is claimed once. Without it, the best-looking target field collects three or four source columns, because a good target is good from many angles. Two of those mappings then overwrite each other at load time, silently, in whatever order the load ran. With the rule, the second-best source for that target has to find its own defensible match or stand unmapped.

The output of mutual-best assignment is therefore two lists rather than one. Pairs where both sides agreed, and remainders on both sides where no defensible partner existed. The remainders are not failures of the algorithm. They are its most precise finding.

The lie with a checkmark beside it

Danubia's retention flag lands in the remainder, and the temptation returns wearing project clothes.

Under deadline, an unmapped column reads as unfinished work, and unfinished work reads as somebody's fault. A forced mapping makes the discomfort disappear: the row turns green, the count goes up, the meeting goes better. A forced mapping is a lie with a checkmark beside it, and the checkmark is what makes it worse than an honest gap. An auditor can question a decision. Nobody questions a green row among four thousand.

The silent omission is the same failure from the other side. Drop the column from the map entirely, and the map stays clean while the flag simply stops existing. Nothing records that a question was ever there. An absence that nobody decided is not auditable, because there is no object to audit.

So the platform closes both doors at once. The matcher will not force a pair the scores cannot defend. And the map will not treat the resulting gap as ignorable, which is the half most tools skip.

An absence becomes a decision

Here is the rule this part exists for. An unmapped column must be explicitly decided by a person before the attestation can seal.

The unmapped flag is a standing question with a name on it, and it blocks the seal the way an unclean reconciliation blocks it. Somebody has to spend the twenty minutes: read the flag, find what fed it, find what read it, and record a verdict. The verdict has a small vocabulary of its own. The column retires with the legacy system. Or its obligation moves somewhere specific, named in the decision. Or it is out of scope, with a reason that survives the person who wrote it.

At Danubia the twenty minutes earn their keep. The retention flag turns out to guard a legal hold: suppliers under an open dispute whose records must not be purged. The target system has no such field, and none of the ranked candidates carries that meaning. The decision records that the obligation moves to the archive store, with the flagged rows listed. The target system stays clean of a column it was never designed to hold.

Compare the two futures. In one, a forced mapping put the flag into a general-purpose status field, and the legal hold dissolved into a value nobody downstream understands. In the other, an explicit decision carries the obligation to a named place, and the seal covers that decision alongside every confirmed pair. The difference is not the outcome of the analysis. It is whether the analysis was forced to happen.

The cap on the screen is not the cap in the math

One boundary belongs here, because teams also fail in the opposite direction.

The review screen shows a handful of top candidates per column, for legibility. The full ranked list behind it is longer, and a column's orphan status is computed from that full list, never from the visible slice. A target that ranked below the display cutoff still counts as matched if the scores defend it. A display cap is presentation. It is never semantics, and a column must not become an orphan because it ranked below the fold.

The rule sounds obvious and is routinely violated, because reading the visible list is easier than reading the real one. An orphan created by truncation is as dishonest as a forced pair, with the sign flipped. It manufactures work and inflates the gap. Part 6 of our last series explained why an inflated figure corrupts decisions, in either direction.

The map, fully decided

Count Danubia's standing at the end of this part. Eighty-three columns carry confirmed operations from the closed grammar. One column carries a decided absence, with the obligation routed to a named place and a reason attached. Nothing is forced, nothing is silently missing, and every entry, including the absence, is an object a seal can cover.

The map is now complete in the only sense that matters: every column was decided by somebody, one way or the other. Which raises the question the whole series walks toward. The decisions are recorded. How does anyone know they were right?

Part 5: The tie-out you did not author. Four signals, one divergence number, and a reconciliation derived from the map rather than written about it.

Model your first domain today.

You send five documents, we model them, and the first cut comes back in days.

This site uses cookies

We use essential cookies for the site to function and analytics cookies (Google Analytics) to understand how you use it. Analytics cookies are only activated with your consent. We do not track you across other websites. Your data is stored in the EU and processed in accordance with GDPR. Read our Privacy Policy