-
Spring cleaning your Anaplan experience: Best practices for model optimization
Author: Wendy Wen is a Certified Master Anaplanner and Senior Director at Globalization Partners.
As we embrace the arrival of spring, it's an opportune moment to fine-tune your Anaplan experience, enhance model efficiency, and elevate user satisfaction. In this blog post, I will delve into essential best practices and tips to help you achieve these objectives seamlessly.
* Implement model design best practices: Ensure adherence to naming conventions for module names, organize modules into relevant functional areas, and maintain clear line item naming conventions with accompanying formulas and comments. This structured approach lays a solid foundation for efficient model management.
* Conduct data cleanup: Initiate a comprehensive data cleanup to eliminate duplicates, outdated entries, and unused elements within your Anaplan model. Maintaining data accuracy and integrity is paramount for informed decision-making and reliable insights.
* Streamline model design: Take a critical look at your model's structure. Simplify where feasible by removing redundant modules, line items, and calculations. Embracing a modular approach not only enhances scalability but also simplifies ongoing maintenance tasks.
* Leverage automation features: Harness the power of Anaplan's automation capabilities. Schedule imports, configure actions, and set up workflows to automate data updates and repetitive tasks. This strategic automation not only saves valuable time but also minimizes the risk of manual errors.
* Optimize formulas: Delve into your formulas and calculations to optimize performance. Utilize selective calculations, leverage summarize functions effectively, and steer clear of circular references. These optimizations contribute to faster processing times and smoother user interactions within your Anaplan model.
* Monitor performance: Stay vigilant about your model's performance metrics. Utilize Anaplan's monitoring tools and dashboards to identify bottlenecks, fine-tune performance, and ensure a seamless user experience. Proactive monitoring is key to maintaining optimal model functionality.
By implementing these best practices and tips, you can spring into efficiency and cultivate a more streamlined Anaplan experience for all users. Let's collaborate to optimize our models, elevate data quality, and empower users to make well-informed decisions effectively.
What tips would you add? Leave a comment!
……
Read past spring cleaning articles here:
* Spring cleaning: Marie Kondo-ing your Anaplan model
* Anaplan — Spring cleaning!
* Spring refresh — Anaplan edition
-
Best practices for technical documentation of a model
Author: Arun Thakar, Certified Master Anaplanner and Vice President in the banking industry.
As go-live approaches and admin and end user training gears up, the question of ‘how do we document the model?’ might be front and center in your daily standups. Fear not! This article will cover some of the best practices on documentation, how it can be leveraged to ensure adoption, and demystify some of the complex modeling features your team has spent so much time developing over the last few months.
There are three main takeaways from this article. First, leverage the notes column in the system settings menus and module Blueprint. Second, documents living outside Anaplan can be a good reference for users to quickly identify which module or list they need to look at to find answers. Third, create simple and easy-to-read architecture diagrams which give a sense of the model components at a high level to bolster and tie together your technical document. Let’s expand on each of these more:
* Use the notes column for all critical calculations, actions, and lists to create in-model documentation. This allows your super users and system admins to debug, understand, and enhance the model without having to refer to an outside document or consult the original model builder. A good note will describe what the formula is trying to do before the reader reviews the code. Notes are especially helpful when they comment on the business reason or architecture decision behind the line item’s creation. Notes on actions, particularly those used on processes can save time for integration admins who are trying to decode what an import does without having to dive deeply into the different tabs in the actions menu.
* A reference document outside the model facilitates navigation for admins. When creating a document, whether its text or slides, it’s good to have a clear audience. Technical documents should have diagrams and focus on the components of the model to give the reader a sense of how data flows. For technical documentation it’s good to start with context about what the document is meant to accomplish, who the intended audience is, and what is out of scope for the document. An overview should have a high-level model architecture diagram as well. Other components of technical documentation can include data administration and transformations, summary of lists, modules, and actions, calculation deep-dives, integration summary, and UX overviews. Below are each of these sections described:* Data administration and transformation. Here is where the reader goes to understand the source data format and where the data is coming from. It's also a place to show how the data gets transformed from its source format into a dimensionalized data set which planners interact with
* Summaries of lists, modules, and actions. Now is your chance to leverage all those descriptive notes you added to the system settings menus. Create tables each containing the critical lists, module, and actions, and add more context on how these fit in with the business context and where these are used.
* Calculation deep-dives. Your specific calculation logic should be clearly defined in case someone asks how the model is calculating metrics. It’s much easier to present a slide with a conceptual definition that opening the module blueprint and muddling through the formulas. Flow charts here add valuable information and are recommended.
* Integrations. Tables are helpful when documenting integrations. It is a good idea to split the tables into sets such as inbound or outbound, or by data source or target.
* UX overview and features. Given that the UX is likely to change, exhaustive documentation on UX is not advisable. Instead, a page for each board or worksheet with a good-sized screenshot is best practice. The text associated with each board should not contain modeling considerations but should absolutely contain the purpose of the board and key features. Try bulleting the features with details and drawing callouts to the screenshot.
One last note, documentation shouldn't teach admins how to model build but can redirect admins who have questions to resources such as Anapedia and Anaplan Support, as well as your company’s Center of Excellence.
* Diagraming is the best way to convey model architecture. Here are a few best tips for creating a diagram:* Make sure the diagram is easy to read. If you find yourself drawing too many lines and boxes in the flow chart, you might want to take it up a level of granularity. Detailed schematics are helpful only if the solution architect is presenting them to an audience and can walk through the diagram.
* Group modules together to highlight functionality. You could, for example, make your legend the functional areas of the model and create the flow chart in columns as the DISCO framework, review the model map feature in the system menu (at the functional area level) and try to trace the functionality from data staging modules, through the calculations all the way to the reporting and output modules.
* Use the right level of granularity. An overview architecture diagram doesn't have to be module specific, but should rather be somewhere between the functional areas with specifics on critical functional components.
It might be helpful for readers to have a diagram supporting each section of the technical document for data transformation and integration, as well as in each of the deep dive sections. When you have a draft document, it’s helpful to socialize it with the audience before handover in case they have questions, as this will help you tailor the content to their gaps in knowledge.
What best practices would you add regarding technical documentation? Leave a comment!
-
Show process Id into actions window
it's would be useful to display process Id into actions window (in a dedicated column)
-
Mapping modules dimensioned differently
I want to be able to pull over my Snapshots from SYS: Snapshot Lookup into my time module via lookup using my Week Number and the Code since they are both text. My lookup module isnt dimensioned by time but it shouldn't have to be, what am I missing?
Capture1.PNG
Capture2.PNG
-
L3 Sprint 2 building the list: G4 Territory > Account#
Hi Community,
I started L3 wherein we have to build G4 Territory > Account# list in Sales Planning model
I followed below steps as per training
* Firstly, loaded the Download: Territory Data.csv into Data Hub model into Territory Flat List system and built system module below is the image attached of both list and sys module created.
* However, I am struck where how to build list G4 Territory > Account# in Spoke model (Sales Planning model) as there is one CSV in lesson 4.4 section with CSV name Download: CYW Scenario Territory to Accounts.csv used this CSV directly to build the list below is screenshot after loading this file directly into list.
Kindly Please provide your inputs as is this the above performed is right step or
do we have to prepare a saved view module with relation to Territory and accounts in Data Hub and then import that saved view to the G4 Territory > Account# list in Sales Planning model
Please request for cream layer hint to proceed further would be really helpful in proceeding further. as I am doubtful about the code in G4 Territory > Account# list which is reflecting in below screenshot
Territory_sys_module.png
Territory_sys_module.png
-
Anaplan Last year values Summary(Formula)
I have two modules A, B. Module A has time ranges of Week, Month, Quarter, Year. Module B has time ranges of Month, Quarter, Year. What would be the best practice to get last year values from module A to Module B and have them reflected for Month, Quarter, Year? (I tried OFFSET, POST, but got error while changing summary from none to formula)
-
I NEED HELP ASAP
Hello,
I need your help please!!
I wanna import this file CSV in a list on Anaplan without edit the file.
should i import the file in a module and create a code for each line then import the view in the list ? and how to do it ?
thank you
RGDS
-
Formulating and capturing the no of orders count based on orders placed between time scale.
Hello Community,
Process explanation based on below screenshot is basically on the left part we have module in which time is recorded for the orders placed and we need to gather and capture the count or no. of orders placed between the time series.
EX: Orders between 14-15 PM is placed at 14.30 PM and 14.45 PM
we need to get the count as 2 in no. of orders accordingly in 14-15 PM
Requesting for your inputs on the below would be really great in getting in sight on how to go about
-
Action for Deleting an empty row in UX after running the process
Hello community,
I have been working on creation of the group wherein employees roll up to a particular super group below are the 2 Screenshot in detail.
<strong>Current Process:</strong>
Below is when enter all the details and click on action called "Create Super Group" the new employee with its Super Group code is added to the below Grid that is SG and SG Members.
<strong>Requirement:</strong>
However, I would really want to understand on once I run the action Create Super Group and it is executed I want to delete the entire blank row after running Create SG Group process
I understand we have to create a Process and add an action however my humble request is to obtain some details on how to proceed for it
Process has 3 actions:
-
UX Page action button and Grid Data
Hello community,
I have been working on creation of the group wherein employees roll up to a particular super group below are the 2 Screenshot in detail.
Current Process:
Below is when enter all the details and click on action called "Create Super Group" the new employee with its Super Group code is added to the below Grid that is SG and SG Members.
Requirement:
However, I would really want to understand on once I run the action Create Super Group and it is executed then I want a fresh Grid with no data in Grid : Create Super Group and its should be with no data to enter new data and super groups
I understand we have to create a Process and add 2 actions however my humble request is to obtain some details on how to proceed for it
-
3.4.3 Activity: Create Country Summary Module
Hello
can anyone please help that formula for country made in is correct ?
-
3.4.3 Activity: Create Country Summary Module formula is wrong ?
hello
I have put the formula for Safety Stock Flag Count
but in the exam it says wrong when i pasted it . i dont why couple of times it got rejected ?
any advice will be helpful
-
Top five new model building tips and additions that changed my life
Author: Ayesha Zoha, Certified Master Anaplanner and Manager at Cervello.
As we all have started using the new modeling experience, here are my top five features which have made model building easier and more efficient:
* Formula indentation.
One of the significant additions in the new model building experience is the separate formula bar pop out within the same module along with the option to see the formula indentation. With this addition, you can easily see how the formula is split and highlights a different color for every function used within the formula. With this feature, you don’t have to use any external add ins or move out of Anaplan to write the formula. This makes things much easier when working with lengthy complicated formulas including multiple functions.
* Guided formula writing.
Along with the above features, the new formula bar prompts for any formula changes or selections once you type similar line-item names, which makes selecting the item easier.
You can choose to place this formula bar either below your screen (horizontally) or next to your module (vertically) which makes it convenient to type the formula.
* Pages and details along with history.
The new section under ‘More’ gives you the ‘Pages’ option. This feature is something that we were all eagerly waiting for, to see history of the pages associated with each model. This feature is a game changer and helps you track the origin of the page and when changes have been made. This gives you a closer look in case you want to track changes after any revision tag has been synced.
The below screenshot shows the details of the pages you have created using this model and gives details such as the name of the page, app, last update, and when it was originally published. This makes a big difference when you have multiple apps referencing the same model, and it gives a cleaner and structured view to keep a track of these updates/changes.
Clicking on the blue highlighted page opens the respective page.
Another detailed tab gives you an overview of the status of the page and details of when it was last published/changed. By clicking on the row, you can see the right window pop up.
* Create page directly from model.
Since my second point was about pages, another important feature which was very much needed is creating a page directly from the model. In the classic version, this option was not available, and the model builder had to navigate to the ‘Apps’ section of Anaplan to create a page. This now eliminated and you can directly create the kind of page you need from the model.
By clicking on ‘Create Page’, it takes to the pop up to choose the kind of page you want to build.
* Module references published on the Page
.* Another important feature that made my life easier was finding which modules are published on a specific page. Previously, you had to open the board/worksheet and go to edit mode to find out the name of the module from which a specific grid was populated.
* Now, by clicking on the row that has the page name, a new pop window opens, that shows the names of the modules published on the selected page. You can further directly open the module by clicking on its name.
* Enhanced model search.
For models with extremely high number of modules and saved views, this is a big value add. You can now search anything using the model search and it will show you the saved views, modules, dashboards, lists, line items, list properties and subsets.
Along the with the above five, I really like the feature of opening multiple tabs at once without closing the previous ones — you can now see lists, modules, dashboards etc. all opened at once, like an internet browser.
As we wait for more features to be added to Anaplan, do let me know what your favorite features are in the comments!
-
cant access after restoring history
after i have resorted to some eariler viersion in the history due to some accidently removing the dimesions from models menu of a model; now i have checked my pages and it is showing this
can i know how to solve this ?
-
Adding new level to existing hierarchy
Hi Everyone,
The model has 7 levels of hierarchy for three years now. Would it be advisable to add another level between l6 and l7, taking into account the consequences?
-
Button on Dashboard not working
The picture above highlights the problem, every time i use the button Add Sub-GL/Vendor Item, the chart to the right should update with the name, GL account, for each department. I tried to add a new vendor expense under admin finance and legal called "anaplan", the gl account i choose was called software/subscriptions. After using the button, the page selectors default from software to consulting & external, the chart to the right shows accounting, audit instead of software, and it doesnt show the name "anaplan", it shows enter description.
The following picture is the logic behind the button:
The A6 sub/gl list looks like this when i open it:
Everything says enter description, and its not tied to the department i need (admin, finance, legal). This is the formula driving the display name:
The module being referenced in the display name formula is here:
Here is the output:
How do I resolve this? all i wanted was to be able to input each departments software contracts so that a budget owner can come in and see there contracts. This originally went south because the logic was set up so that all contracts regardless of the department fell under software, subscriptions.
-
Drag and Drop functionnality (Line Items - Modules)
Hello
It's will be helpful to have the drag and drop functionnality directly on each line item in order to rearrange easily on purpose
Regards
Patrick
-
Preview Window before creating Revision Tag (Preview of the result in the target environment)
It would be useful to have a preview window of the results of development done in a model before creating a revision tag (for synchronization). This involves setting up the ALM.
This mode exists in the new UX in page builder mode
Thank you
Patrick
-
Model change best practices (Sept 2023 Community Challenge recap)
Author: Julie Ziemer is a Certified Master Anaplanner, Anaplan Community Boss, and Solution Leader/Business Analyst at Akili.
There were so many detailed answers to the September Community Challenge — it was a challenge just to sort through all the great information! To help the Community, I thought it would be helpful to summarize the best answers.
The question: “As an Anaplan model builder, what steps do you take to ensure that changes you make to an existing module don't create unexpected results in the module you made changes to and in other modules?”
Synopsis of the best answers:
* You may first want to consider your organization’s Change Tolerance toward Anaplan. See @JaredDolich's great outline of the four quadrants of prioritizing Anaplan change requests here: Corporate Psychology vs. Customer Satisfaction.
* Always review and utilize Anaplan best practices (DISCO, PLANS, The Planual, ALM and your organizations Center of Excellence best practices). The best models out there are built using these best practices.
* As the adage goes (and @Tiffany.Rice says), “an ounce of prevention is worth a pound of cure”, and this definitely holds true when it comes to changing a production deployed model. Start by laying out a plan of action.* Narrow in on the objective — what changes do you expect to see and what should stay the same?
* From there, work backwards. For example, if you expect to see a methodology change to a specific forecast account, start with the reporting output module and trace the formulas back to the originating inputs.
* Determine the type of change. This table from @Misbah and @Puneeth H P helps guide the solution path:
* Layout any and all module/list/actions that need to be updated — both formula and production data updates. This can help to surface questions early that might need clarifications from business partners on requirements before they become roadblocks.
* Contemplate dependencies, sequencing, and execution. Certain changes might necessitate a series of ALM revision tags — for example, if modifying an input module to be based on a subset, the subset is defined on one tag and populated in PROD before the tag with the module revision is synced. Contemplate the optimal order of execution to ensure no production data is lost and the development is logical and meticulous.
* Ensure the appropriate baselines for validation are captured. Capture the core output modules to validate before/after impacts of the revisions. If any line items you are changing or removing have references to other module line items, export the correct output values for validation once you have finished changes.
* Create comprehensive test plans. Test scripts, unit testing, user acceptance yesting, Dev-QA-Prod migration testing and system integrated testing need to be considered as appropriate for the complexity of the change.
* Determine what change documentation you may need to provide support to auditors or other interested parties.
Once you have considered all these steps, you should be ready to start executing your plan. To see more detailed tips, go to the September 2023 Community Q&A Challenge.
Happy modeling!
-
Email Notification
I created a action - to add list member. Additionally also a notification to notify me via email if there will be a new List member added. But unfortunately it is showing me two different buttons to execute the process. Is there any way i can create in one process the adding of list member followed by Email notification?
Thanks in Advance.
-
IMPRESSIVE! Community Q&A Challenge recap
Earlier this month we launched our inaugural Community Q&A Challenge, where we presented an Anaplan-related question to our Community to answer and share their perspective. We asked, “As an Anaplan model builder, what steps do you take to ensure that changes you make to an existing module don't create unexpected results in the module you made changes to and in other modules?”
We knew we had a smart Community, but WOW were we blown away by the quality of the responses! A huge thank you to all the participants for taking the time to share their in-depth perspective and expertise, excellent resources, and for creating a supportive Community where members can learn from each other.
If you missed the Challenge, or would like to review the amazing responses (over 30!), check it out here. You’ll find advice, checklists, files to help guide you, and examples.
Top answers
As part of the Community Challenge, we introduced a “Top Answer” badge to our top three responses who received the highest number of “likes” from members. The winners are…
Jared Dolich (@JaredDolich): “I am fond of a concept from Lean Six Sigma that, to this day, is predominantly used by most IT organizations which is to create a 2x2 impact effort matrix regarding how to prioritize service requests. Anaplan Way uses the same approach as part of the planning poker and sprint review.” See Jared's chart and recommendations..
Misbah Ansari (@Misbah): “I divide my response into five categories: Formula Change, Name Change of a Line Item, Name Change of Module/Saved Views, Deletion of Line Item and Addition of Line Item.” Dive into what to consider for each one.
Puneeth Kumar H P (@Puneeth H P): “This question itself holds the best motive is that the changes we are doing must not be affecting any other places or outputs.” Read Puneeth’s six steps to check here.
In addition to our “Top Answer” winners, Anaplan’s Operational Excellence Group was blown away by the answers and wanted to recognize their favorite answer, in addition to the top three. Congrats to Tiffany Rice (@Tiffany.Rice) — OEG appreciated the overall framing of her post, and the mindset that model builders should take in regarding their changes in their models.
Tiffany Rice: “As the old adage goes an ounce of prevention is worth a pound of cure and this definitely holds true when it comes to changing a production deployed model. When I pick up a model enhancement, before making any changes I'm going to start by laying out my plan of action. I start by narrowing in on the objective - what changes do I expect to see and what should stay the same.” Read Tiffany's advice here.
Thank you for participating!
We encourage everyone to check out this fantastic thread of answers from our incredible Community members, share it with your teams, and bookmark it for future reference! And thank you again to everyone who contributed — all participants will be awarded a unique badge.
Stay tuned for more exciting Community challenges and opportunities to share your Anaplan expertise!
-
Line items
Hi Anaplan Team,
Model builders could work more quickly and efficiently if we could display the list of filters and import actions. When we attempt to delete a line item, Anaplan shows the referenced line items, but it does not indicate which line items that specific line item is using in filters and import actions.
-
NEW Community Q&A Challenge — join the discussion and collect a badge!
In the Anaplan Community, we believe that success stems from members connecting, sharing, and helping one another. As we witness members supporting each other daily in forum discussions, sharing ideas and best practices, and showcasing their expertise across various content, we are excited to introduce a new challenge that offers everyone the opportunity to engage and learn from one another.
Introducing our very first Community Q&A Challenge, where we present an Anaplan-related question for all of you to reflect upon and share your perspectives!
Question for the Q&A Challenge: As an Anaplan model builder, what steps do you take to ensure that changes you make to an existing module don't create unexpected results in the module you made changes to and in other modules?
Please comment in this post with your answer!
How to participate in the Q&A Challenge:
* The challenge starts today, September 5, 2023, and will conclude on September 22, 2023.
* Provide a response to the Q&A Challenge question by leaving a comment in this post: As an Anaplan model builder, what steps do you take to ensure that changes you make to an existing module don't create unexpected results in the module you made changes to and in other modules?
* Community members who participate in the discussion will receive a unique participant badge at the end of the challenge.
* But that’s not all! In addition to the participant badge, we’re introducing a "Top Answer" badge that will be awarded to the top three responses with the highest number of "likes" from fellow Community members. You can vote for answers by "liking" your preferred responses in the comments. Feel free to "like" more than one answer – in fact, we strongly encourage it!
We will announce the winners of our Q&A Challenge and showcase their answers during the week of September 25!
Are you ready to join the discussion? Participate in the Q&A Challenge by commenting below in this post. Don’t forget to show your support by liking for your favorite answers.
We look forward to seeing your responses!
For a full outline of our challenge rules and restrictions, read our full Terms & Conditions here.
-
Community perspective: How to vary model inputs using optionality
Sandi Duffy is a Certified Master Anaplanner and Senior Finance Manager at Challenger Limited.
With Anaplan, it is easy to run multiple scenarios within the same model by using optionality.
A common use for this would be during the budget setting process. Say, for example, you have a budget model but would like to see what the impact on profit would be if sales, margins, or expenses were higher or lower.
To achieve this, you need a mapping module to define which input option is to be applied to each scenario, as well as a module where you select which scenario to look at in the model.
Get started
Start by creating two new lists for scenarios and options.
Create a module for scenario mapping using the Scenarios list as the dimension.
The first line item can be text to provide a description of what the scenario is. The remaining lines are for the inputs that you want to be able to flex and should be formatted using the Options list.
In the screen shot below the model has been set up with four scenarios, starting with the base case and then applying different assumptions to the base case. For example, Scenario 2 has the same margin and expense input assumptions as the base case but applies different sales inputs (taken from Option 2 instead of Option 1).
Then create a module without dimensions for selecting the active scenario. You will need a line item to select the scenario you want to look at and should be formatted using the Scenarios list. The rest of the line items will be identical to the Scenario Mapping module.
The line item formulas will point to the identical line item in the Scenario Mapping module but will only return the value from the scenario selected.
For each input you want to flex you will need two modules; one with the Options list as a dimension and one to return the inputs for the active option.
For example, looking at sales, you have an input module with the product sales assumptions for each option and a module returning the sales based on the scenario that has been selected.
In the screen shot below Scenario 4 has been selected in the Active Scenario module. Scenario 4 is using Option 3 from the Sales Input Options module.
NOTE: You can link the calculation module directly to the input module that has the Options list as a dimension but having a separate module returning the active inputs makes it more transparent and user friendly for the model user.
It’s easy to apply optionality to existing models. For any input module you can add an identical input module, but with optionality, downstream from the existing module.
Example:
Current model flow:
New model flow:
Copy the Sales Inputs module and add Options as a second dimension. Then create a mapping table and scenario selector module as described above. Add a formula to the original Sales Inputs module to return the inputs from the new module that has the Options dimension.
Conclusion
As well as performing scenario analysis, this functionality can be useful for tracking input changes during the budget setting process. For example, if the sales budget changed you could keep the original and the revised inputs in the live model by using different options. This removes the need for taking multiple copies or snapshots of the model and improves transparency of assumption input changes.
Do you have other ideas of how you may leverage the power of optionality in your organization?
Questions? Leave a comment!
-
Create Shipping Export Module and Create a Saved View
Hi, I am unable to compile the data at month level. As soon as I change the timescale formula to monthly it shows the subsidiary view icon against line items, yet does not change it to monthly view in grid. Please suggest what's going incorrect here..
-
Passed your L2 exam? Now what?!
Author: Hillary Sich is a Certified Master Anaplanner and Consultant Manager at Allitix.
P.L.A.N.S. is the underlying guide to building a good model — and following these model building best practices will insure you're building the best model!
If you've passed your L2 test and are diving into work, here are some additional hints I've learned to keep your Solution Architect happy.
Use notes!
* Lists: Describe what the list is used for
* Modules: Describe what the module does, relationship to other modules, and unique functionality
* Actions: Add more details than in the Action title* Functionality
* If temporary, when to remove from the model
* Run frequency
* Line items* Use in development to copy formulas to as a temporary holding spot when troubleshooting
* Line item specific functionality
* Development notes
Adding line items
* Format before function — Always set the line item format before adding a formula.
* Set the summary method to NONE as a best practice, then update as necessary for model function. Keeps cell count optimal by only using sum method when needed.
Clean up after yourself!
(The model is not your childhood bedroom!)
* Remove unused line items* Check to see if the line item is referenced by any other line item in the model* If not, check to see if the line item is used as a filter in a dashboard
* A little tedious, but worth the effort depending on the number of cells in the line item
* Organize actions immediately — you will forget what the action is for by tomorrow!* Use consistent naming conventions* i.e. – Update list from DH view (this tells the next model builder what the action is used for)
* Organize ALL actions into a process* Use a numbering system to indicate which actions belong to which process* Process: 1 Update from Data Hub
* Actions: 1.1, 1.2, 1.3 with descriptions
* Delete any unused actions
* Saved views* Delete unused saved views as you go
* If unsure if a saved view is used in the model, do not delete!
* Name saved views used in testing with “test” in the name to easily identify the view for later clean up
Did you get the result you expected?
(Troubleshoot along the way.)
* Dashboard early and often — this is the best way to see results from the eyes of the end user
* Drill down is your friend* Sometimes the best way to see the error in a formula is by looking at the underlying data, not the formula
* It is all about the dimensions (when it is not about the data)* Triple check the dimensions referenced in a module/line item to insure all dimensions have a match or a Lookup
Those pesky zeros
Zeros in source data do not overwrite corresponding values in Anaplan.
* Consider a clear import action before importing new data
* Always use line items formatted as “No Data” for clear actions. These lines do not take up any space in the model and accomplish the goal of erasing all existing values in the target module.
Conclusion
In conclusion, don’t get discouraged when you stub your toe in development. Anaplan is a powerful tool with functionality that extends well beyond what is taught in L1 and L2 model building training. Keep learning more each day. The best advice is to reach out for help rather than spinning on a formula. Use the Anaplan Community, Partner resources, and resources within your company to keep moving your knowledge forward!
Any tips you would add? Happy building!
-
Anaplan History Extraction based on Specific Criteria
Hi Anaplan Team,
We now only have one option for extracting history: selecting a date range. It will benefit all model builders and Anaplan workspace admin users who truly take part in model development if we can offer more options, filters, or criteria.
History Extraction Options along with Data Range:
based on a specific user.
based on specific objects like modules, lists, line items, and so on.
-
Getting to know your model
Author: Stacey Gibbens is a Certified Master Anaplanner and Anaplan Solution Architect, leading the Center of Excellence at Globe Life.
Maybe you’re a new employee at a company who has been using Anaplan for a while, or maybe your company has contracted with an Anaplan partner to have some models built. Either way, it will be important to dig into the model and understand all of the moving parts: Data sources, Inputs, System modules, Calculations, Outputs, and everything in between. Why? Because it’s your model now and you will need to support it and your user base. (Yes, I did just reference the DISCO methodology! Read about that in this Community article — OEG Best Practice: Best practices for module design.)
For this blog, I downloaded and reviewed a template model from the Anaplan App Hub called Planning, Budgeting, and Forecasting for SaaS. As this model was built before the UX, the included dashboards are all classic dashboards. I created a couple of simple Pages in the UX for demonstration purposes only. The included spreadsheet contains exported details from the Actions, imports, import data sources, and modules components within the model. It demonstrates how the details can be filtered to find and isolate model specifics during your investigation.
The App Hub is available for Anaplan customers to download many useful training and example models.
Start here
Let’s take it step-by-step. First, take a copy of current production into your Dev environment. This allows you to walk through the model processes first as an administrator and then as each kind of user role to observe how the processes function by persona without potentially impacting your production environment.
Anaplan provides a very high-level model map that displays the model structure and interconnectivity, organized by mapped functional area. Therefore, the information organization is only as good as the mapping. When mapped properly, the diagram of functional area modules will enable you to identify how the data flows. Model map is accessible toward the bottom of the contents menu under the "…More" section.
When opening the model map, it can look a little daunting — just zoom in to review the module detail within each color-coded functional section. Each of the arrows between modules indicates the direction of data flow (“referenced by”), which can be helpful in understanding functional connectivity.
Alternatively, select the “Collapse all functional areas” navigation button to more easily view the connectivity between the functional areas. For example, see that the Strategic Planning functional area receives information from the Calculations & Technical, Parameters/Assumptions, and Sales/Revenue functional areas. In turn, it feeds back into the Calculations & Technical, Parameters/Assumptions, and Sales/Revenue, in addition to the Reporting functional area.
The Anapedia article about navigating the model map is here.
But this only indicates basic information flows. How does the model WORK?
Clearly, reviewing any user stories that are available will give you a good start. However, user stories are very high level by default and don't provide the “guts” of how the user story is accomplished within the model. Your model is still a big black box with some smaller boxes for each user story. Each of the smaller boxes need to be opened up for review!
Dashboard analysis
What task does the user story address and where does the user begin? Start with the dashboards! Similar to how a model design process begins, start with the user endpoints: dashboards, reports, and exports and work backward into the model through actions, views, lists, system tables, and data modules. Each of those will have targeted sources that the user works with to produce the desired output for the next stage.
Access the modules tab and review the “Used in dashboards” column at the far right. Similar to the “referenced by” column, this gives great insight into the sources of data to review when deconstructing a classic dashboard. In the example below, the Strategic Planning dashboard looks like a good place to start, as it is central to users accessing almost half of the modules in this functional area.
In addition to reviewing the module details within Anaplan, the descriptions can also be exported or simply copied and pasted into an Excel spreadsheet. This will be helpful if any dashboards span modules that are part of different functional areas and are therefore not grouped together. Once exported, filter for items that include the dashboard to analyze within the Used in dashboards column, and you’ll see all the displayed modules along with another key connection: Referenced by. Referenced by indicates that at least one line item in the module is being used by another module. You can also see this link from within the Blueprint view of the module itself. But when coming into the model from the outside and trying to map out the connections, this higher-level reference is useful. Please see the attached Excel spreadsheet for how I filtered the extract to identify these details (located at the bottom of this article).
So, in the Strategic Planning dashboard, we have A. data inputs, B. navigation actions, C. charts, and D. back-end “guts” of the application to run a process to lock or unlock a finalized scenario. If you didn’t build this model, how would you investigate and map out the functionality?
In each dashboard, there are object attributes that are shown or hidden, depending on the chosen object options. The “clean” appearance of the above dashboard hides the source modules, but you can temporarily display those sources for a screenshot by choosing “Show module name” in the options and then Preview the dashboard to see a production view without saving the changes.
Now you can review how graphical elements are configured, investigate how each line item is calculated based on data inputs, and follow any dependencies back to source data and system modules.
For each of the actions (both navigation and running processes), hovering your mouse over the button will show the action, the attributes of which can be researched in the Actions menu.
But, what about a published line item or other page element that doesn’t have a clearly defined source? For example, the element Scenario to Lock is a published line item — but from where?
In this case, the Model Search tool is the place to go. As you can see in the screenshot below, Model Search provides a list of all model components that contain the entered keywords. There’s a module, our published line item, two saved views, and another random module that happens to have all the letters in the keywords… we can safely ignore that one. 😉
All four of the elements in this section D of the dashboard are related to the Scenario to Lock module. The line items Scenario to Lock and Status both reside in the Scenario to Lock module. The Lock Strategic Plan and Unlock Strategic Plan processes run actions based on data in the Scenario to Lock module.
Processes and Actions
Let’s investigate Actions! The process Lock Strategic Plan contains Lock Actions 1–5 of 5 below and the Unlock Strategic Plan process contains Unlock Actions 1–3 of 3 shown below. We can see the description of these actions on the main Actions tab, but what are the specific sources and targets for these actions? What views are used? What are the parameters of the action (mapping, clear some or all, only update, what gets ignored, etc.)?
The sources and targets for these actions can be found by examining the attributes within the Imports and Import Data Sources tabs. Remember, these attributes can be exported or simply copy/pasted into Excel. Please see the attached Excel file for how I extracted and filtered the relevant tabs’ contents to isolate the relevant details within the next few screenshots below.
When reviewing the import attributes, be aware that the syntax of the Source Object field is Model / Module, so if the action was created using a non-production model and ALM’ed to production, the action’s Source Object will reference the original source model… which isn't likely to be the current source used by your production model. Review the current mapping in the Source Models menu within the Anaplan sidebar menu to get the current relationship. Remember that this relationship for the various source model instances must be managed as ongoing development is promoted, as new refreshed versions of “DEV” will change the model ID over time. DEV from 6 months ago may not be the same as DEV now and so no relationship between new DEV and PROD will be available in PROD until it’s mapped.
Since import data sources should be as narrowly defined as possible, this is often accomplished by creating a saved view to hold only the necessary line items (using SHOW) and filtered to meet a narrow import action requirements. If an action doesn’t function as expected, check out the filter applied to the source saved view to determine why a value in a target is not updated per the source. It’s likely there is a broken upstream process or a user’s selective access impacting the filter.
Back to the Import Analysis! See the import name in column A and the target object in column E. This lines up with your expectation based on the Actions tab.
Filtering the Import Data Sources extract by Imports (column F) will provide the exact list, module, or view Columns C Source Type and D Source Object Name to examine to understand the data flow.
Another item to remember is functional role permissions applied to the action. A perfectly reasonable user story includes a multi-function dashboard where users of different authority can input, review, and process information in the same place. If an end user can view a dashboard but shouldn't be able to run an action (like the ones we’re looking at, to lock or unlock a plan) then that user’s role should be unselected in Roles➡️Actions configuration screen. As you can see below, currently all functional roles in this model have the ability to run these actions and therefore the process composed of the actions.
You can finally review the configuration of the Action itself with confidence, as you know all the attributes of the Action! You know at least the basic user story associate with the process/action, you know where the source data is and where it’s going, and you know the action’s associated user permissions. Review the action configuration by choosing to “edit” the action and make note of the high-level source-to-target dimension mapping, the time dimension format, the matching of dimension members from the source to the target (and which are ignored), and the way in which the target data is updated or cleared depending on the mapped items by source.
This clearing part can be tricky, because the clearing piece isn’t global based on that first mapping screen shown below. But clearing is only available to configure on the subsequent tabs if the radio button to clear is selected on the first tab. It’s important to understand the nuance of how data is managed during imports and to play around with the options in a safe environment to understand which options impact the data in your own scenario, based on your source data and your target module dimensionality.
Considerations for UX
You might be thinking, what if we aren't using classic Dashboards? What if we’re in UX? Do I have to go into each page and look at each element to see where it originates? Well, the answer is, not anymore! Yes, friends, last fall, Anaplan enabled a view of the UX Pages where a model is accessed. Because a single App can include pages from various models across multiple workspaces, it’s not as fully centralized as the “Used in Dashboards” concept available in each model. Therefore, the App➡️Model and then Page➡️Model/Module relationships must be investigated separately. Action settings are viewed from the page (same as Classic), but the Page➡️Model/Module relationships can be found by following the steps outlined below.
First, find the model being used by the page.
Then, access the Pages menu from the sidebar menu within the model to review.
Selecting the row of the page (not the blue page link, which will take you to the page itself) opens a menu with both General page information and Modules used by the page.
From there, the procedure to investigate action sources/targets/dependencies and module interconnectivity to understand how the module functions is the same as for classic Dashboards.
Review security
How does security play in? That’s a much deeper topic not addressed in detail here, but for Classic dashboards, all security is role-based. For UX pages, though, there's an ability to grant or restrict access to pages by role if desired. This applies to the page as a whole and is not specific to any underlying role-based module, action, or list permissions applied within the referenced model. These global page permissions can be viewed and managed in the page settings:
As you already know, role-based security is defined by the settings in the five Role configuration tabs of the User menu: Roles, Roles➡️Modules, Roles➡️Versions, Roles➡️Lists, and Roles➡️Actions.For either Classic or UX, if a process or set of functionality works fine for you (Full Access?) but an end user reports a bug, check permissions first. Module, list, and action permissions default to “No Access” and must be explicitly granted. Versions default to “Write” and must be restricted if needed.
With this, you are armed to discover and document your models’ functionality, dig into optimization strategies, and leverage the current functionality as a platform for new offerings that are sure to delight your customers. Happy modeling!
Referenced file attachment:
S_Gibbens_Anaplan_Blog_Excel.xlsx
-
Five tips for a (mostly) painless model rollover
Author: Clarissa Hassfurder is a Certified Master Anaplanner and CEO at Double10 Consulting.
As Anaplanners, we all hope that when a model is being build the Solution Architect and model builders think about and document all maintenance requirements for the admins. But this isn’t always the case, especially when many hands influence the build of a model or use case. Any time you start a new job or begin working with a new-to-you use case, ask about whether a rollover process has been documented. If not, or if the document has not been updated recently, use this guide to create your model rollover document!
What is a model rollover?
A model rollover occurs when a certain time threshold is hit in the use case timeline that requires admin actions. Most models use Time settings heavily, so model rollover is frequently required, especially when crossing a year threshold. There can be model rollover processes required monthly, quarterly, yearly, or all of the above. The rollover could require locking certain DCA elements to make sure a month/quarter/year can no longer be updated past a certain point. It could also require certain actions to be run to clean out transactional data no longer needed. It could have dependencies on another model being rolled over before being rolled over itself. No matter what type of model or use case you are working on, these five tips will help you create a model rollover process that can be repeated successfully.
Start prepping early
* Review the model for everything that could be tied to the rollover. A rollover isn’t just about changing the Time settings. It can be as simple or as complicated as the use case itself (or more, or less!). Here are a few questions to get started.* Which models require a rollover? For example, do both your commissions model and your sales reporting model need to roll over on a certain day after month close?
* Does the Data Hub or any main transactional data need to be cleaned up as part of the process?
* Are there any custom time lists outside of the Time settings being used? Do any time periods need to be added/removed from this list?
* Are there any Time Ranges that need to be updated in prep for the rollover?
* Are there multiple properties modules that need to be updated or should be combined?
* What is the impact of changing any properties items in the model?
* Will the team create a model copy before completing the rollover? If so, where will this model copy be stored?
* This is also a great chance to review the model/use case as a whole and see if there are general improvements and simplifications that can be made. For example, if you have two modules serving as model wide settings, combine them and eliminate any duplicate line items. If you have multiple names for your model wide settings modules across models, standardize the naming convention.
Create, review, and re-review your document
* Make a document in Excel (or an Anaplan UX page with links!) with step-by-step instructions. Include communications to users about down time for the model. Make sure there’s a column called “Assigned To” so that the team can divide and conquer the list together.
* Note every step with a prerequisite. Find places where multiple activities can take place at once. Can one person complete model rollover for the commissions model while another person completes steps for sales reporting?
* Think holistically about the environment. Do changes need to take place in one model before steps are taken in another model? Create a column called “Model” and store all steps for all models together in one document. This way, you can ensure you are completing steps with consideration for all prerequisites.
* Have someone else check your document. The more eyes, the better.
* Involve business owners if needed, especially if you are new to the model and no rollover document existed before. For example, if you sales forecasting model is quarterly, that doesn’t necessarily mean the business users want the model rolled over on the last day of the quarter. They may have a grace period of a few days to gather actuals regarding closed deals for the quarter.
* Ensure everyone participating in model rollover steps has access to everything they need. For example, if your team stores all model copies in a specific workspace, make sure everyone owning a step to make a model copy has Workspace Admin access to your model copy workspace.
Give yourself time
* If you have the opportunity, do a dry run first in a copy of the model. How did it go? Did you find any steps that you could eliminate? Did you find any missed steps? How long did each step take? Note all your findings.
* If you aren’t able to do a dry run, try to estimate how long each step will take, and note this time on your checklist. Sum all times together to determine how long the rollover will take. Add buffer time, and communicate this timing to the users so they’ll know how long the model will be offline.
* Timing is also key! Work with your business users to ensure you’re completing the rollover at the correct time. Sometimes models are used heavily during a certain week of the month/quarter. Give yourself as much buffer between heavy use times to minimize downtime.
Involve a super-user in testing
* Find the most detail-oriented business user for each use case. This person should also be involved in reviewing the document and completing the dry run. Their responsibility is to double-check the model before it’s opened to all users. Require their sign-off before releasing the model.
Do a retro after the process is over
* Sometimes we miss things. Sometimes we take longer than expected. Sometimes we find things while in the middle of the process that we didn’t originally document. Be sure to document all retro findings in your step-by-step document. If you use Excel rather than an Anaplan UX page, be sure to store your document in your team’s repository when you’re done!
I’ve included as part of this article a sample step-by-step document as you get started organizing your rollover process. Feel free to take it, modify it, or even convert it to an Anaplan UX page. And as always, please feel free to reach out if you have questions!
Sample Rollover Checklist.xlsx
-
How to add a button that creates a new line item in the GL that has a hierarchal structure
The current button we have in place has us add in a new SUB-GL/ vendor item to a numbered list. That numbered list uses an OpEx subset that layers in each new vendor into its respective opex area such as adding "Anaplan 2.1" under Software subscriptions in the GL. The problem im running into is that this current structure does not allocate this software subscription under the correct leaf level department. New vendors being added under software subscriptions will show up in the app layer and are not filtered out by department. This creates a visual mess and becomes difficult to follow.
The steps I took was to add "Leaf level department" as a new dimension in the module being referenced by the numbered list. I added this dimension to the line item "Description" the result shows the new software "anaplan 2.1" under Admin: Finance, Legal. but the display name is called "[Enter Description]" this is because the formula on the numbered list is:
IF ISBLANK('OpEx Sub-GL/Vendor List Name'.Description) THEN "[Enter Description]" ELSE 'OpEx Sub-GL/Vendor List Name'.Description
The reason why this is blank is because Leaf level department is not a dimension in the numbered list. I cant have it as a parent because the opex subset is the parent. What do i do?