# Creating transformations

Compose allows you to transform data using an expression either in Replicate or Compose, according to your needs. The table below provides further information about creating transformations.

Where to create a transformation

| **Where the Transformation is Created** | **Reasons to Create a Transformation There** | **When the Transformation is Applied** |
| --- | --- | --- |
| Replicate | <ul> <li>Filtering large amounts of data that is not needed for the <span>Storage Zone</span> (in the present or the future)</li> <li>Obfuscation due to regulatory reasons or internal policies</li> <li>Data type conversion (e.g. converting a source data type that is not supported on the <span>Storage Zone</span> platform)</li> </ul> | Before the data reaches the landing zone. |
| Metadata | <ul> <li>The default location if you are not sure where to put it</li> <li>General business logic</li> <li>Needed for several sources or several data marts</li> </ul> | Between the Landing Zone and the Storage Zone. |
| Storage Zone | <ul> <li>Specific source preparation</li> <li> <p>Need to preserve the original unfiltered source information in Hadoop</p> </li> <li>Needed for merging several sources</li> </ul> | Between the Landing Zone and the Storage Zone. |

See also [Reusable transformations](https://help.qlik.com/en-US/compose/December2024/Content/ComposeDWDL/Main/DL/Model/define_reusable_transformations.htm).

In this section:

* [Expression Builder overview](https://help.qlik.com/en-US/compose/December2024/Content/ComposeDWDL/Main/DL/Model/expression_builder_overview.htm)
* [Building Expressions](https://help.qlik.com/en-US/compose/December2024/Content/ComposeDWDL/Main/DL/Model/tasks_buildExpress.htm)
* [Testing expressions](https://help.qlik.com/en-US/compose/December2024/Content/ComposeDWDL/Main/DL/Model/tasks_testExpress.htm)