Best Of
Re: Dear Anaplan, A love letter
Priceless @Tiffany.Rice
Past lovers be ****, tell Excel that we are meant to be!
Happy Valentine's Day everyone.
Dear Anaplan, A love letter
My Dearest Anaplan,
On today the day of love, I must confess deep and fervent feelings. I love you, I love you, I love you! From the early days of our courtship where you filled me with visions of possibility, to the late nights where I dreamed of solutions we may create together, I have loved you dearly. Past lovers be d*mned, tell Excel that we are meant to be!
Though our relationship has not been without strife, remember when you baffled me with circular references and blue toasters of death? But oh, the highs when we found our sweet spot, learning how to speak each other’s language! No more pesky function syntax confusion.
Our love is not selfish, no not a bit. We share it with so many others, I cannot believe we have reached 100k community members. Such a vibrant and thrilling exchange, but I must say the community challenge series has been particularly scintillating. The tips, the tricks, the passion, WOW! What rich and diverse discussions we have had this year. I would be remiss not to mention the incredible best practices shared. The model optimization series filled me with awe, reminding me of memories I had forgotten and creating new ones! Thank you for reinforcing the benefit of time based functions rather than lookups, I will admit I had not considered the impact to performance. I shall endeavor to maximize your beautiful calculation engine hence forth!
We are ever growing, every changing, and you continue to delight me with your evolving features. Like a fine wine, you are only getting better with age! Remember the youthful glow of your classic dashboards? They can’t hold a candle to your new user experience pages! Don’t think I didn’t notice those formatting options you recently added or the helpful function building hints in the model building experience. What else might the future hold? I can’t wait to see how Anaplan Data Orchestrator increases your beauty! Thank you darling for making it so easy for me to extract, transform and load, you knew that was a challenge I needed help with. Just when I thought I couldn’t love you more!
Your beloved,
Tiffany
……
Author: Tiffany Rice is a Certified Master Anaplanner and Tech Lead at Prudential.

Ability to have a link to you to a specific dashboard even if using Single Sign On
For support and action communications, it would be great to be able to send people to a specific dashboard even in a SSO environment.
We don't want to use workflow
Anaplan to support and be certified for IBCS
I would like Anaplan to be able to support IBCS (International Business Communication Standards) that is outlined here: https://www.ibcs.com/
Certified software is listed here: https://www.ibcs.com/software/
To be certified you need to be able to produce the following templates in the standard capability in the tool: https://www.ibcs.com/resource_category/templates/
The below are areas I think Anaplan NUX would need additional capability adding to be certified:
Conditional formatting
- Cant format value/number only background of cell i.e. make a -2 appear in text of red
- Cant bold parents in hierarchies in grids
- Need to be able to format positive numbers with a + symbol as a prefix
- Need the ability to change cell border thickness like excel cell borders
Charts
- Ability to show chart within a table ie format as chart
- Ability for bar chart colour to reflect red for negative and green for positive
- Ability format bar chart bar based upon a value
Re: How to calculate Anaplan model size?
You can't really use ratio metrics for cells to GB, it's too variable
The sizing is as follows for any line item or list property. The "cell count" for properties will be the number of members in the list (including subsets)
Boolean = 1b
List, Time, Date formatted = 4b
Number and Text = 8b
As @usman.zia said each list item = 500b (including the name and code properties)
You also need to account for subsets = these also count as list members too, so 1m items and 2 subsets of 500k each = 2m
Finally you need to throw switchover into the mix. This can reduce model cell count too as the "actual" periods are not counted
I hope that helps
David
Enable Specialized Layout / Filtering in UX that Avoids Using Booleans
Planners and managers contribute to the planning in multiple ways in Anaplan solutions, entering numerical values, text entries, boolean business decisions like yes/no/approved… etc. Such users have contribution licenses to have the right to use Anaplan and contribute accordingly. Some other users are intended to be "read-only", only viewing the plan in Anaplan, looking at the information as reports, not entering business decisions into the plan. Companies need to limit these users' configuration to read access to the modules, so that these users do not contribute to the plan and thus require contribution licenses.
The challenge is that in some companies' Anaplan solutions the team has built reports with specialized layout or filtering options - ones that are currently beyond the capabilities in the Anaplan UX layer. Sometimes the solution implemented is one in which users are prompted to select boolean values in the UX screen, and then the underlying model adapts the data layout or filters to the underlying output module, so that the resulting report displays in the way that user selected.
Thus, the user who intends to "view" the plan has "contributed" to the model, even though the intent was just to impact the view in the UX, not to contribute to the business decisions.
The request is to enhance the Anaplan UX with more flexible layout/ filtering capability so that it is possible for the implementation team to enable such specialized filtering or layout solutions in such a way that the platform does not track that as a contribution.
I defer to the Anaplan Product team to determine the technical approach to support this requirement, but the ideal approach would be
- Improve the UX capabilities to allow such specialized filtering / display settings in such a way that does not require the implementation team to build underlying modules to determine the UX output. This would elimate the problem and also save space in the underlying model. Thus this is preferred.
Multiple customers have implemented such specialized layout / filtering solutions, and this impacts all end users who use or view these UX pages, every time they use these pages.
There are numerous examples of such specialized solutions which currently involve users setting booleans. Here is one where users can determine the time periods to show in different years.
Aggregation of text and images in Hierarchy Charts
When Hierarchy Charts were introduced to the Anaplan UX, their popularity grew very quickly. The power of the intuitive visual representation of business hierarchies, and the simplicity of setup, combined to fuel substantial adoption by hundreds of our customers.
At its’ simplest, the structure of a hierarchy can be displayed as shown….
Here we have a Parent Company with subsidiaries in the UK, France, and Germany. The hierarchy is ragged in nature because the UK is further broken down into the countries in which the company operates, namely England, Scotland, and Wales, whereas France and Germany are not split further. Let’s first assume that this is represented in Anaplan by a single list (called Ragged Hierarchy). We will come to composite hierarchies later.
We have the ability to add a numeric line item to the chart, in this case, Revenue.
This line item aggregates as expected with the Summary Option set to Sum.
So far so good, but what if we want to add a unique image to each node, such as the flag of each country in the hierarchy? To do this, we need to store the URLs to the images in a line item like this one:
URLs, being text-formatted items, can naturally be stored at leaf level as shown. Assigning this to the hierarchy chart then produces this:
All very smart, except that we have no images for the UK or the Parent Company, because our summary option is set to None. If we look at our aggregation options, there are none which would allow for a unique image for the parent nodes. For example, Last non Blank is a common summary option for text, but here it would produce this:
Clearly, this is not what we want, because the UK ends up with the Welsh flag, and the Parent Company with the German one. So how can we model a line item to populate the parent nodes of the hierarchy with their own unique image, or indeed any text or list formatted item?
The answer is first to store the unique URLs for the images against a flattened version of the items in the hierarchy, rather than the hierarchy itself as above.
Our challenge now is to apply these URLs to our hierarchy list, and to do that we need to find a way to identify the levels of each node, from leaf to top level. This example involves a shallow hierarchy of just three levels. Follow the logic to add more levels as required.
This module is dimensioned by Ragged Hierarchy.
The parent-child relationships are set out in the first 3 line items, followed by their codes. The formula for both Max Level and #Levels is the same, as follows:
The only difference is that Max Level has a Summary Option of Max, whereas #Levels has a Summary Option of Formula (along with all the other line items shown above), giving different results at parent levels. The Effective Level calculation then compares the difference between them, relative to the overall depth of the hierarchy (3 in this case). The result is a number whereby one means top level, two means intermediate parent, and three means leaf. This line item therefore defines the level of each item in the ragged hierarchy, which we can now exploit.
The Ragged Hierarchy Calc module is extended as follows:
To forge a link between the Flat Hierarchy list and the Ragged Hierarchy list, we use the same codes for the items within each. We can then use FINDITEM formulae to populate the three line items (Flat L3, Flat L2, and Flat L1), each formatted on the Flat Hierarchy.
These line items are then used as lookups from the module SYS01 Flat Ragged.
The key line items for us here are Image, Manager, and Role. Manager is text formatted, and Role is list formatted, and so have the same aggregation problem as images when applied to a hierarchy, as can be seen here when added to the chart:
You will see three sets of four line items in the Ragged Hierarchy Calc module, one each for the Manager, Role, and Image. The first 3 line items per set pull the relevant item from the SYS 01 Flat Ragged module, and lookup the associated flat item depending on the level.
For example:
Image L3='SYS01 Flat Ragged'.Image[LOOKUP: 'Flat L3']
Image L2='SYS01 Flat Ragged'.Image[LOOKUP: 'Flat L2']
Setting the summary option to Last Non Blank populates the parents with the same items as the nodes.
The fourth line item per set uses the Effective Level line item detailed above, to pull the correct calculation from the three preceding line items:
For example:
So for Manager, we end up with this view:
Choosing these “overall x” line items in the hierarchy chart settings now yields this result:
And so finally, after a little modeling, we have what we want! Each node has a unique flag and Manager, and the Role is correctly represented too.
I said I’d come back to composite hierarchies, where we have multiple lists, each containing items of a certain level of a normalized hierarchy. Using our example above, we would typically see a representation like this:
The leaf level is designated with an L3 suffix, intermediate parent by L2 and top level by L1. The main difference to the single ragged version is that France and Germany have repeating “dummy” nodes, so that they have items at the lowest level.
To do our hierarchy chart, we can use exactly the same technique as above, except that the flattened version of the composite hierarchy will have the additional dummy nodes for France and Germany.
For example:
The only further issue that you may encounter, is that you may not want the dummy nodes to appear on the chart like they do here:
We can deal with this by creating a filter to exclude the dummy nodes. In this example, you can see a line item called Name in the SYS02 Flat Composite module. By comparing the names of children to their parents, and determining which parents only have one child, you can construct a filter called Dummy Node? which can then be applied in the custom view for your hierarchy chart:
You can see here that France Level 2 and Germany Level 2 are ticked, and so we can eliminate them from our chart to produce this result:
I hope you found this useful. Any comments or questions will be very welcome.
…….
Author: Andrew Martin, Operational Excellence Director at Anaplan.
New UX: Model Status/Refresh Messaging on New UX Page
Idea is to have a message or status on the New UX page in order to notify user that something is happening in the model that is causing the model to queue or be blocked (examples include: save state, actions, etc.). The lack of messaging causes massive frustration for users who think the New UX page is "slow". The classic UX had a "toaster" message, while annoying at least provided an understanding of model performance.
Did You Know: Multi-dimensionality overview
Author: Allison Slaught is a Certified Master Anaplanner, Anaplan Community Boss, and Senior Principal Solution Architect at Anaplan.
Hello Anaplan Community!
The objective of this ‘Did You Know’ tutorial is to provide a brief recap of multi-dimensionality in Anaplan and provide a framework for identifying how formulas work. I use this framework daily to understand formulas, troubleshoot formulas, and align expectations with other model builders and stakeholders.
The video is below, but in case you’re revisiting the video and want to jump ahead here’s an overview.
When writing or understanding formulas, it can help to simplify multidimensional formulas into a 2-D view. I outline the dimensions of the source line item (where values are coming from) and target line items (where values are going to or where you’re writing the formula).
- Example 1 is a simple reference. Anaplan auto-matches like with like (e.g., G3 location to G3 location).
- Example 2 is simple reference that relies on composite hierarchies (aka parent/child relationships within lists), Anaplan can auto-match to pull a parent value from a more granular dataset if summaries are available.
- Example 3 is a simple reference, but there is an extra dimension in the source (product) and an extra dimension in the target (version). Where the source has an extra dimension (product), the default behavior is that the target receives the top level value (all products) if summaries are available. Where the target has extra dimensions (version), the default behavior is for every list member to receive the same value.
- Example 4 is a lookup.
- Example 5 is a sum.
Cautionary notes
This video does not include subsidiary views line items (line items that have a different dimensionality than the overall module). If your line item is in subsidiary view, the pivot feature shown in the video will not accurately reflect the dimensions in your line item.
Other tips for formula writing
- Don’t overcomplicate your formulas. If you have a simple reference that results in the desired effect without functions like sums and lookups, don’t add them just because. Not only is it messy, but extra, unnecessary functions cause the engine to do more work than necessary.
- If you are struggling to troubleshoot a more complex formula, consider breaking it down into staging line items.
- List member naming conventions are especially helpful to understand when Anaplan will “auto-match” using the composite hierarchy. It is generally recommended to use a letter prefix and a number with the parent values being the lower number and the children being a higher number. For example, if G is the abbreviation for the geographical hierarchy, and we have 3 composite lists (Region, Country, and Location), we’d follow the convention of G1 Region, G2 Country, and G3 Location. This numbering convention is preferable in Anaplan because it is common to have list members added below the lowest level member.
Questions? Leave a comment.
Happy modeling!