Define the handoff before touching the workbook
An ETL run is easier to audit when every input has a stable source ID and batch ID. Record the file or API capture, object-storage prefix when relevant, workbook sheet or range, and the expected row and field shape. Keep raw inputs immutable so a normalization fix can be replayed instead of guessed from a changed file.
Normalize before combining
Land API pages or storage batches first, then resolve CSV encoding and delimiters. Use the sheet splitter and range extractor to avoid mixing notes or totals with data. The column mapper establishes names and order; the unpivot normalizer converts month-as-column layouts into records when the downstream table needs a long shape. Merge only compatible workbooks, and make the incremental cursor part of the lineage rather than an invisible setting.
Treat schema and SQL as review artifacts
The JSON Schema tool provides a candidate contract from headers and examples. Compare it with the migration plan, the business key, nullability, and the selected database dialect before accepting generated INSERT statements. The tools prepare text and structure; they do not replace a database transaction or a human decision about type changes.
Reconcile counts and deliver deliberately
Before export, reconcile input rows with accepted, duplicate, rejected, and output rows. Check the final field set, types, key uniqueness, and any schema drift. Parquet and NDJSON suit an analytics handoff, while a CSV pack with a manifest makes sheet-level review easier. If a check fails, quarantine the affected branch and retain its lineage instead of publishing a partial result as complete.