A set of named functions to populate each cell of the cube. You can request multiple functions over the same dimensions (such as “cube_mean” and “cube_stddev”) or more commonly just one (like “cube_count”). For example:

```
{"measures": {"count": {"function": "cube_count", "args": []}}}
```

or:

```
{"measures": {
"mean": {"function": "cube_mean", "args": [{"variable": "datasets/1/variables/3"}]},
"stddev": {"function": "cube_stddev", "args": [{"variable": "datasets/1/variables/3/"}]}
}}
```

When applied to the dimensions we defined above, this second example might fill the table thusly for the “mean” measure:

mean |
1 |
2 |
-1 |

5 | 4.3 | 12.3 | 8.1 |

15 | 13.1 | 0.0 | 9.2 |

25 | 72.4 | 4.2 | 55.5 |

35 | 8.9 | 9.1 | 0.4 |

…and produce a similar one for the “stddev” measure. You can think of multiple measures as producing “overlays” over the same dimensions. However, the actual output format (in JSON) is more compact in that the dimensions are not repeated; see Object Reference:Cube output for details.

ZCL expressions are composable. If you need, for example, to find the mean of a categorical variable’s “numeric_value” attributes, cast the variable to the “numeric” type class before including it as the cube argument:

```
{"measures": {
"mean": {
"function": "cube_mean",
"args": [{
"function": "cast",
"args": [
{"variable": "datasets/1/variables/3"},
{"class": "numeric"}
]
}]
}
}}
```