Benchmarking in GoodData

  • 11 February 2021
  • 2 replies

Hello all.

I would like to start a discussion about how you do or how would you do benchmarking in GoodData. I would like to provide my customers which are in the same business some comparison of some key metrics against aggregated data from all customers / industry standard.

I was playing with a dummy model and data and it seems that something simple as second dataset with the aggregated data works well:


Is this a good approach? Anything you would recommend me?

Thank you.


2 replies

Userlevel 2

Hello Robin, yes this is good approach - this is exactly how you do benchmarks in GoodData - add a new dataset into which you load aggregated data from all the customers and connect this dataset to the rest of your model by a “shared dimensions” - those by which you want to benchmark. This will allow you as well as your users with ad-hoc permission to use the benchmark data.

A few notes to it for some best practices:

  • Usually the facts in the benchmark dataset are similar to the facts in the standard datasets. It is good practice to make it clear from the name whether it is benchmark or actual value (i.e. prefix the benchmark facts with “Benchmark”) - it helps you and the users who have self service rights to better understand which is which for example in the Analytical designer or Metric editor when there is not immediately clear from the name, which dataset the fact is from. (i.e. Benchmark Duration - minutes).
  • If your benchmark values are the same for all your clients and you are loading your workspaces with GoodData Automated Data Distribution (ADD), you can easily make the benchmark data load to all the client workspaces by not having the x__client_id column in your Output Stage table. 
  • In your sample model you will only be able to benchmark by date. If there was more attributes you would want to benchmark by, the way how to do it is to connect both datasets (the actual customer data and the benchmark data) to a common dataset. For example if you wanted to add “Call Category” into the Calls dataset and also allow benchmarking by it, your model could be expanded like this:



Hello Michal H.

Thank you very much for your reply. I am glad that I put together something meaningful. Actually it was logical and also easy to create.

I really appreciate the tips you mentioned. I am already working on a prototype and so far it goes well. I had to make some changes in the model, but it will allow me benchmark by different attributes. It was really great advice! I am looking forward to finish it and release it for testing.