Data Talks

How dimensions and measures fit together to create flexible metrics

Guest Author
Guest Author

As a data professional you have probably come across the terms measures and dimensions before. Maybe you learned about them as part of your information management studies or saw them used in an application like Tableau. All of that knowledge is going to be helpful throughout this post, but don’t worry if these terms are new.

While dimensions contain qualitative data, measures contain measurable, numeric data. Even if you’re familiar with measures and dimensions, you might wonder how to use measures and dimensions to define your company metrics.

With Transform, dimensions and measures offer a flexible way to ask questions of your data, slicing and dicing metrics to provide deeper insights for you and your teams.

In this post:

  • I'll define Dimensions and Measures.
  • Explain how Transform combines dimensions and measures to create flexible metrics.
  • Provide a glimpse of how metrics come to life in Transforms Metrics Catalog

What is a dimension?

> Dimensions are columns containing qualitative data as opposed to quantitative.

If I was going to ask a question of my data, dimensions would be the nouns and adjectives. For example, let’s say I owned a local bakery. I might ask “How many mint chocolate chip cookies does our local bakery have in stock?” In this example baked_good and flavor would be our dimensions.

For those of you with a SQL background, you are probably already comparing dimensions to the columns we list in the GROUP BY statement of our SQL queries, but there is an important difference. When we define dimensions in Transform, we are defining optional levels of aggregation, while the columns listed in the GROUP BY of a SQL statement explicitly set the level at which the aggregations of that query take place.

This little insight should start to help you imagine how the MetricFlow framework allows you to create an extremely flexible metrics store. This little insight should start to help you imagine how Transform's Metrics Framework allows you to create an extremely  metrics store.

When we simply exclude either of the dimensions mentioned in the earlier question our queries are completely transformed. Excluding the flavor dimension leaves us with “How many Cookies do we have in stock?”. Excluding the baked_good dimension might leave us with a question like “How many Mint flavored baked goods do we carry?” These are both very interesting questions!

As you can see, dimensions are powerful, particularly when it comes to metrics. They allow your end users to ask more questions of their data.

What is a measure?

> Measures are columns of numerical data from your data source that are…measurable.

Think of measures in Transform as the small unit of aggregation in our data sources.

Transform currently has six native aggregation types:

  • sum
  • average
  • max
  • min
  • sum_boolean
  • count_distinct

Below is an example of a measure using the sum aggregation type:

Code for "sum aggregation type" in Transform's Metric Query Language (MQL).
Measure using the sum aggregation type in Transform's Metric Query Language (MQL).

By defining the aggregation in your data source, consumers of the metrics don’t have to worry about how to compute the right value for their presentation or analysis. You have already established the correct definition. Now any metric referencing these measures will just work.

What is a metric?

> Metrics are usually quantitative indicators of the performance of a system such as a product or business. Essentially they are performant, flexible, well-defined, version-controlled functions that are specific to a given data source.

Metrics are ultimately what we have been working toward this whole time.

"Revenue" metric chart in Transform's Metric Catalog, showing revenue over time. Image shows metric owner along with the metric tier and when it was last approved.
Example of a "revenue" metric in Transform.

By defining the dimensions in our data source, you have all you need to slice and dice your data at different levels of granularity. Since measures are defined separately, you can interchange different aggregates or combined measures to easily generate new insights.

Metrics really bring everything together. Once you build out your metrics in Transform, you have a resource where anyone (who has access) can see all your most important company metrics, the context around them, and how they change over time.  

They can use these metrics for further analysis, marketing presentations, quarterly reports…you name it. Your metric provides a flexible, single source of truth for the whole organization.

How do our metrics come to life in Transform?

The metrics you create in Transform get prime real estate in the Metrics Catalog.

The Metrics Catalog contains tiers and annotations, along with a dedicated space to ask questions and have conversations around your metrics. There is also an option to add a metric owner for further context and accountability for metrics definitions and changes.

We love our cookie example, but in the examples below, we’ll use a common metric across all business—revenue and transactions—to show the power of Transform’s Metrics Catalog.

Revenue chart with an annotation overlay. The text in the overlay reads "End of quarter revenue spike" and shows low severity to overall business.
Metric chart with annotations in Transform. In this example, the label shows the severity—with this event having a “low” impact on the business.

Those with a desire to adjust a definition can see how the definition is currently constructed in the Metrics Catalog.

Shows lineage for a revenue metric, including the data source, measure, and metric. Below the lineage, it shows the code in Transform's Metric Query Language (MQL).
Lineage is an important component of the Transform Metrics Catalog. Lineage helps you track changes to your metrics over time.

If an adjustment is warranted, the metrics owner knows precisely where to make the adjustment thanks to the question posed in the context of the Metric.

Most of this can be done asynchronously through the Questions section of the Catalog.

Shows a question around the metric and the reply: "Do we backfill this dataset to exclude messages that were later deleted?" with a response that says "This data set includes all messages that have been sent, including those that were later deleted."
Adding questions to the Metrics Catalog provides important context and prevents repetitive questions about metrics. When your stakeholders have a question, they can check to see if it was already answered, saving time for both analysts and business users.

Posting your questions in the Catalog saves the team time and adds to the documentation around the Metric, making for a more robust tool to drive the business forward.

In conclusion

Transform's goal is to allow you to query your key metrics simply and reliably within your existing data tools and workflows.

I believe MetricFlow, Transform's metrics framework, provides an elegant approach to this end. In return for a few simple definitions, we receive metrics that are flexible and also dependable.

This post was authored by Robert Crocker. Robert is a Data Visualization Engineer at Starschema and a Developer Ambassador for Tableau.