A model writing variance commentary without row citations produces text that reads well and cannot be checked. The typical output says something like "Utilities are overstated by roughly 20 versus plan," which is a sentence a controller cannot verify without redoing the entire comparison by hand. That is worse than no commentary, because it looks finished.
The same problem shows up in matching itself. One practitioner who built a model-driven reconciliation pipeline reported that the model handled the easy majority of pairs quickly, was useful on the ambiguous middle, and failed with confidence on a small remainder, which in reconciliation is the worst possible failure mode (Amit Mishra on LLM reconciliation). The lesson generalizes: let the model draft language, but make every factual claim in that language traceable to a row you can open.
The design principle is simple. The model is not the source of truth. The rows are. The prompt exists to make the model's output a set of pointers back to those rows.



