Manifest: include only Sales_Jan, Sales_Feb, Sales_Mar; exclude Summary, Lookup, ConsolidatedSales, and every future table until approved. Drift: Feb renames two columns; Mar adds optional Sales Rep; Feb has one Order Date type error. Canonical mapping is exact: OrderID→Order ID, Date→Order Date; all other headers must match. Missing Sales Rep becomes typed null, not an empty string.
Power Query staging: create one query per approved table with Source Sheet/Table and an index-based Source Row added before transformation. Rename from the mapping record, add missing Sales Rep as nullable text, select canonical columns, and apply types while retaining a pre-type copy or Try-based record for error capture. Append only the three staged valid-row queries. Build Errors from rows where date or amount conversion fails; the Feb TBD row appears there with its raw value and lineage. Do not delete it silently. Build DuplicateAudit by grouping Order ID and keeping all nested rows. Join duplicates to Corrections; select a replacement only when the listed month/table matches, otherwise exclude both from CurrentSales and keep them in quarantine.
Reconciliation before duplicate resolution: Jan 102 / 48,320.50; Feb 98 / 46,105.00 subject to the quarantined TBD date but Net Sales still traceable; Mar 110 / 52,880.25; appended raw count 310 and raw sum 147,305.75. Reconcile valid, error, duplicate-quarantine, and final-current row counts back to 310 with mutually exclusive statuses. Stop refresh on an unknown header, missing required column, unapproved source table, amount conversion error without quarantine, unlisted duplicate, or source count/total mismatch. A future April table is not auto-included.