The order flipped for economic reasons. Traditional ETL transformed on a dedicated server before loading, which required knowing the target schema up front and buying hardware sized for the transform workload. Cloud warehouses made storage nearly free and compute rentable by the minute, so the sensible sequence became: land the raw data, model it inside the warehouse, and keep the raw copy for whenever the logic changes.
ETL order is still correct in specific cases — personal data that must be masked before it may land anywhere, strict compliance boundaries, and legacy targets that cannot transform internally. Outside those, ELT is the default for warehouse-bound analytics, which is why the monolithic ETL suite gave way to a split stack: managed extract-and-load tools such as Fivetran or Airbyte, and in-warehouse transformation with dbt.
The engineering substance is the same whichever order you choose. Incremental extraction avoids re-reading entire source tables; deduplication handles the records that arrive twice; late-arriving data and slowly changing dimensions decide how history is represented; and every transformation carries tests, because an untested transform is a wrong number waiting for a board meeting.
ELT's convenience hides a cost that appears on the warehouse bill. Transforming after loading means every downstream model re-queries the raw tables, and teams that model carelessly pay to recompute the same joins thousands of times a day. Incremental models — processing only new or changed rows — and materialisation choices made with query costs in view are the difference between an elastic warehouse and an elastic invoice. Cheap storage does not make cheap computation; it just moves the bill.
Transformation logic is business logic and should be tested like it. Uniqueness and not-null checks catch structural breakage; accepted-value tests catch category drift; and a handful of reconciliations against source-system totals catch the subtle failures — the join that fans out, the filter that silently drops a region. Modern transform tooling makes these tests cheap to write, which removes the last excuse for shipping logic that has never been verified against a number someone trusts.
| ETL | ELT | |
|---|---|---|
| Transforms | Before loading, on separate infrastructure | After loading, inside the warehouse |
| Raw data kept | Often discarded | Yes — reprocessable when logic changes |
| Best when | PII masked pre-load; fixed target schema | Cloud warehouse; evolving data models |
| Typical tooling | Informatica, Talend | Fivetran / Airbyte + dbt |
Codazz builds this in production — AI & ML Development.