A structural review answers one question: what is different about this month's file, stated precisely enough that a downstream owner can act on it. It deliberately does not answer whether the difference is acceptable.

Choose the right baseline

Use the last export that downstream consumers actually accepted, not simply the most recent file you received. A baseline nobody ever consumed successfully turns every later review into a comparison against a mistake.

How columns are paired

Exact header matches pair first. Reviewer-committed rename mappings pair next. Anything still unpaired is reported as added or removed. Name similarity is computed and offered as a candidate, but a candidate is never applied on its own: a resemblance between two header names is a lead, not a decision about business meaning.

The change kinds

Findings cover columns added, columns removed, columns reordered, a shift in the inferred type, an increase in observed value width, an increase in blank rate, and each consumer-policy check. Every finding carries the columns involved, the evidence behind it, and a severity that comes from the encoded policy rather than from a general opinion.

Reading a blank-rate increase

A blank-rate jump is a prompt, never a verdict. Three explanations are common and they call for different actions: the field became genuinely optional upstream, the extraction scope changed and some rows no longer carry it, or a join upstream silently started missing. Ask the producer which one it is before deciding whether the consumer can tolerate it. The workbench reports the exact before and after rate so the conversation starts from a number.

Reading a width increase

A maximum length that grows is worth checking against fixed-width consumers, database column definitions, and label templates. It is often harmless and occasionally the reason a nightly load fails at two in the morning.

Reading a reordering

Order only matters to consumers that bind by position. The workbench reports the reordering as a fact and lets each consumer policy decide whether that fact is a blocker.

Where the profile stops

The workbench sees headers, positions, and aggregates over the profiled rows. It does not see business semantics, values that did not appear this month, transformations applied after export, or what the downstream job actually does with the file. A review with no blocking findings is not a compatibility certificate; it is a statement that the encoded checks found nothing, which is a much smaller claim and the only honest one.