Removing unnecessary Top Levels

edited May 1 in Blog

Removing unnecessary Top Levels (or better yet, not adding them in the first place!)

Author: Allison Slaught, Certified Master Anaplanner and Principle Solution Architect at Anaplan.

To improve efficiency in your models, it’s important we only calculate where necessary. One way we can do that is to only use Top Levels where appropriate.

Top Levels are very helpful when we regularly refer to those values. For example, if we want to see the Total Revenue across All Products or Total Cost across All Locations regularly, a Top Level for the Products and Locations lists is appropriate. However, with other lists like Scenarios, we do not refer to the value across all list members often, but very occasionally we’ll want to see a total. Including a Top Level for these occasional calculations is unnecessary, and we can calculate those values with another technique, which I like to call the “Just a Dash” technique — just a dash of Anaplan magic. Corny, yes, but the cheese helps with team awareness.

For example, to help guide users to action, one question you might want to display is across all scenarios is, how many units are missing a price?

To provide this kind of context without adding a Top Level, let’s dig into how we can do that.

First, create the structural Just a Dash list with the one list member.

For the list I’m wanting to avoid a Top Level, in the respective system module I create a list formatted line item which I hard-code to the Just a Dash one list member:

The result looks like this in grid view:

When I have a value I want to see across all the list members, I stage the value up through a staging line which has the Just a Dash list in the dimensions like this:

The formula above sums over the Just a Dash mapping.

And finally, to retrieve that value, I use a select statement. Since the Just a Dash list is structural, it’s okay to use a select statement here.

If you see these unnecessary top levels in your models, please know that this is a common feedback point in model reviews and can be removed. The next time you see a message like this:

Rather than immediately adding a top level to your list, let’s give that a second thought, and build with intention.

What tips would you add? Leave a comment!


  • This is one of those Aha! moments for a lot of Anaplanners (even experienced ones). The error you pointed out stresses out even the Perkiest humans out there if they don't know this approach. I think the idea of using a SUM instead of an innocent top level seems counterintuitive at first and that's why this is not a default but I loved the fact that you wrote about it!

    This might be out of laziness but I usually leave it at SUM in a new staging module (to avoid subsidiary view) and use that for reporting (instead of an additional SELECT). To me it seems like a choice after you do SUM part but curious to know if there is a definite advantage of not creating a separate Staging module and reducing the staging line to another line using SELECT.