Idempotent loads when finance reopens a closed period

By Nomsa Khumalo ยท 9 min read

Spreadsheet and pen on a desk

Restatements happen after audit findings or late supplier invoices. Pipelines that only append can post duplicate journal lines when finance reruns a window.

Natural keys versus surrogate keys

We check whether merges use a stable business key (posting reference + line) or a load-batch UUID that changes on every rerun. Surrogate-only merges often hide duplicates in summary reports.

Delete-and-reload versus merge

Delete-and-reload for a bounded period is acceptable when documented and transaction-wrapped. Blind merges without period predicates can erase legitimate adjustments.

What we ask finance before signing off

Which periods may be reopened, who approves reruns, and whether downstream cubes cache aggregates that need explicit refresh. ETL code cannot answer those alone.

Tests we want to see

Replay tests that load the same extract twice and assert row counts and amounts unchanged. Scenario tests for partial period deletes.

Need an outside read on your ledger feeds? See our ETL code review engagement.