Transformations

Filter, rename, convert and sort columns before loading.

Transformations are declarative steps evaluated in order. Each step receives the output of the previous one, so the sequence you define is exactly the sequence that runs.

How steps execute

Evaluation order
raw rows
   |
   +- step 1  filter        amount > 100
   +- step 2  rename        cust_id -> customer_id
   +- step 3  convert_type  order_date -> number (epoch)
   +- step 4  sort          order_date descending
   |
   v
materialized dataset

Filter

Keeps only the rows that satisfy a comparison.

FieldTypeDescription
columnstringColumn to compare.
operator_typeenumeq, neq, gt, lt, gte, lte (symbol forms ==, !=, >, <, >=, <= also accepted) plus contains, startswith and endswith for text columns.
valuestringValue to compare against.

Rename

Maps a source column name to a target name. Use it to normalise messy upstream headers into consistent snake_case.

FieldTypeDescription
fromstringExisting column name.
tostringNew column name.

Convert type

Casts a column to a different data type. Values that cannot be parsed become null; the original text column is replaced in place.

Accepted converted_to values

FieldTypeDescription
stringtextText. Safe for identifiers and labels. Alias: text.
integerwhole number64-bit integer. Aliases: number, int.
floatdecimalDouble precision number. Aliases: decimal, double.
booleantrue / falseAccepts common spellings. Alias: bool.
datetimestampParsed as a datetime. Alias: datetime.

Sort

Orders rows by a column, ascending or descending. Sorting is applied at the end of the chain, so it determines the default order charts receive.

Ordering matters

Rename before you filter if the filter refers to the new name. Convert before you sort so numeric columns sort numerically rather than lexicographically.

Correct ordering
[
  { "transformation_type": "convert_type", "column": "amount", "converted_to": "decimal" },
  { "transformation_type": "filter", "column": "amount", "operator_type": ">", "value": "100" },
  { "transformation_type": "sort", "column": "amount", "order": "desc" }
]

Last reviewed October 2026.