The problem
Cutover weekend scripts are written under pressure, run once, and left in a gist. They use float for money, have no rollback story, and the person who wrote them left six months ago. Re-running against a staging snapshot is never tested.
Why Ecko
- Pipeline stages
|>chains read, transform, validate, and write. Each stage is a function you can unit test in isolation.- Exact decimals
- Migrate ledger balances as
decimal, not float. The reconciliation check at the end actually closes. - pmap for throughput
- Parallelise row transforms with a worker count flag. Cap AI calls with
ECKO_AI_MAX_CALLSwhen enrichment is in the loop.
In practice
csv.read("export.csv")
|> pmap(enrich_row, workers=flags.workers)
|> sql.insert("staging.users")
Try it on your workload.