# Optimized Transforms VegaFusion supports optimizing a subset of [Vega's transforms](https://vega.github.io/vega/docs/transforms/). Below is a detailed breakdown of transform support status. :::{note} When a Vega spec includes unsupported transforms, these transforms will be included in the client Vega spec for evaluation by the standard Vega library in the browser. See [How it works](../about/how_it_works.md) for more details. ::: > **Key**: > - ✅: Full optimization support for the transform and all its options > - 🟡: Partial optimization support for the transform with limitations > - ❌: Transform is not currently eligible for optimization ## Basic Transforms :::{list-table} :header-rows: 1 :widths: 40 10 100 * - Transform - Status - Details * - [aggregate](https://vega.github.io/vega/docs/transforms/aggregate/) - 🟡 - :::{dropdown} More Info Supported aggregate `ops`: - `count` - `valid` - `missing` - `distinct` - `sum` - `mean` or `average` - `variance` - `variancep` - `stdev` - `stdevp` - `median` - `q1` - `q3` - `min` - `max` Unsupported aggregate `ops`: - `product` - `ci0` - `ci1` - `stderr` - `argmin` - `argmax` The `cross`, `drop`, and `key` options are not yet supported. ::: * - [formula](https://vega.github.io/vega/docs/transforms/formula/) - ✅ - :::{dropdown} More Info See [optimized expressions](./optimized_expressions.md) for details on supported expression features that may be used in the `expr` field. ::: * - [window](https://vega.github.io/vega/docs/transforms/window/) - 🟡 - :::{dropdown} More Info Supported window operations: - Ranking operations: - `row_number` - `rank` - `dense_rank` - `percent_rank` - `cume_dist` - Value operations: - `first_value` - `last_value` - All supported aggregate transform ops Not yet supported: - `ntile` - `lag`/`lead` - `nth_value` - `prev_value`/`next_value` All frame specifications and peer handling options are supported. ::: * - [lookup](https://vega.github.io/vega/docs/transforms/lookup/) - ❌ -
* - [bin](https://vega.github.io/vega/docs/transforms/bin/) - ✅ - :::{dropdown} More Info `interval` option ignored and both bin edges are always included. ::: * - [collect](https://vega.github.io/vega/docs/transforms/collect/) - ✅ - * - [extent](https://vega.github.io/vega/docs/transforms/extent/) - ✅ - * - [filter](https://vega.github.io/vega/docs/transforms/filter/) - ✅ - :::{dropdown} More Info See [optimized expressions](./optimized_expressions.md) for details on supported expression features that may be used in the `expr` field. ::: * - [flatten](https://vega.github.io/vega/docs/transforms/flatten/) - ❌ - :::{dropdown} More Info May be possible in the future with DataFusion's [unnest](https://github.com/apache/datafusion/pull/10044) transform. ::: * - [fold](https://vega.github.io/vega/docs/transforms/fold/) - ✅ - * - [project](https://vega.github.io/vega/docs/transforms/project/) - ✅ - * - [sequence](https://vega.github.io/vega/docs/transforms/sequence/) - ✅ - * - [timeunit](https://vega.github.io/vega/docs/transforms/timeunit/) - 🟡 - :::{dropdown} More Info `interval` option ignored and both bin edges are always included. `step`, `extent`, and `maxbins` options are not supported, so `units` must be provided. ::: * - [countpattern](https://vega.github.io/vega/docs/transforms/countpattern/) - ❌ - * - [cross](https://vega.github.io/vega/docs/transforms/cross/) - ❌ - * - [density](https://vega.github.io/vega/docs/transforms/density/) - ❌ - * - [dotbin](https://vega.github.io/vega/docs/transforms/dotbin/) - ❌ - * - [identifier](https://vega.github.io/vega/docs/transforms/identifier/) - ✅ - * - [impute](https://vega.github.io/vega/docs/transforms/impute/) - 🟡 - :::{dropdown} More Info Supported: - `field` - Field to impute - `key` - Unique identifier field - `value` - Custom value for imputation - `groupby` - Group-based imputation Unsupported: - `method` parameter with options other than `value` - `keyvals` array for custom key values ::: * - [kde](https://vega.github.io/vega/docs/transforms/kde/) - ❌ - * - [loess](https://vega.github.io/vega/docs/transforms/loess/) - ❌ - * - [pivot](https://vega.github.io/vega/docs/transforms/pivot/) - ✅ - * - [quantile](https://vega.github.io/vega/docs/transforms/quantile/) - ❌ - * - [regression](https://vega.github.io/vega/docs/transforms/regression/) - ❌ - * - [sample](https://vega.github.io/vega/docs/transforms/sample/) - ❌ - ::: ## Geographic and Spatial Transforms :::{list-table} :header-rows: 1 :widths: 20 10 100 * - Transform - Status - Details * - [contour](https://vega.github.io/vega/docs/transforms/contour/) - ❌ - * - [geojson](https://vega.github.io/vega/docs/transforms/geojson/) - ❌ - * - [geopath](https://vega.github.io/vega/docs/transforms/geopath/) - ❌ - * - [geopoint](https://vega.github.io/vega/docs/transforms/geopoint/) - ❌ - * - [geoshape](https://vega.github.io/vega/docs/transforms/geoshape/) - ❌ - * - [graticule](https://vega.github.io/vega/docs/transforms/graticule/) - ❌ - * - [heatmap](https://vega.github.io/vega/docs/transforms/heatmap/) - ❌ - * - [isocontour](https://vega.github.io/vega/docs/transforms/isocontour/) - ❌ - * - [kde2d](https://vega.github.io/vega/docs/transforms/kde2d/) - ❌ - ::: ## Layout Transforms :::{list-table} :header-rows: 1 :widths: 20 10 100 * - Transform - Status - Details * - [stack](https://vega.github.io/vega/docs/transforms/stack/) - ✅ - * - [force](https://vega.github.io/vega/docs/transforms/force/) - ❌ - * - [label](https://vega.github.io/vega/docs/transforms/label/) - ❌ - * - [linkpath](https://vega.github.io/vega/docs/transforms/linkpath/) - ❌ - * - [pie](https://vega.github.io/vega/docs/transforms/pie/) - ❌ - * - [voronoi](https://vega.github.io/vega/docs/transforms/voronoi/) - ❌ - * - [wordcloud](https://vega.github.io/vega/docs/transforms/wordcloud/) - ❌ - ::: ## Hierarchy Transforms :::{list-table} :header-rows: 1 :widths: 20 10 100 * - Transform - Status - Details * - [nest](https://vega.github.io/vega/docs/transforms/nest/) - ❌ - * - [stratify](https://vega.github.io/vega/docs/transforms/stratify/) - ❌ - * - [treelinks](https://vega.github.io/vega/docs/transforms/treelinks/) - ❌ - * - [pack](https://vega.github.io/vega/docs/transforms/pack/) - ❌ - * - [partition](https://vega.github.io/vega/docs/transforms/partition/) - ❌ - * - [tree](https://vega.github.io/vega/docs/transforms/tree/) - ❌ - * - [treemap](https://vega.github.io/vega/docs/transforms/treemap/) - ❌ - ::: ## Cross-Filter Transforms :::{list-table} :header-rows: 1 :widths: 20 10 100 * - Transform - Status - Details * - [crossfilter](https://vega.github.io/vega/docs/transforms/crossfilter/) - ❌ - * - [resolvefilter](https://vega.github.io/vega/docs/transforms/resolvefilter/) - ❌ - ::: :::{toctree} :maxdepth: 2 :hidden: true :caption: Vega Coverage self optimized_expressions :::