Are you an expert model builder who enjoys tweaking your models so you can shave micro-seconds off load times? Maybe you’ve been assigned the task of taking a poorly performing model and getting it back up to speed. Or you are looking for a way to take your model building skills to the next level.
We’ve got some exciting news for you! We’ve looked at the principal ways that you can optimize model performance and created a checklist. It builds on what we’ve provided in the Planual and takes it a step further. The checklist helps you identify issues that may impact performance, explains why, and includes the actions you can take to fix them.
Use the checklist:
When building new models to ensure that you are following best practices. Add going through the checklist as part of every sprint review.
When performing a yearly review of models, as some COEs may require. Use the checklist to help complete the review.
When you have a model that is experiencing a problem with performance. Some of the items in the checklist can be corrected easily, others may take some time.
When coaching or mentoring new model builders. Encourage them to use the checklist to instill good model building habits right from the start.
How to use the checklist: The checklist includes questions. Click the posts to display more information. Each topic includes more details about when and why this may be a problem, how to correct it, and links to articles and short lessons that provide more information.
Model Optimization Checklist
Model Optimization Checklist
Stage note: the 1st two links go to sample KBs on Stage; others go to the live site.
- Step 1 - Lists
- Does the list use Time as part of the key?
- Does the list use a combination of properties as a code?
- Does the list have a code?
- Does the list use Properties?
- Are there subsets on larger lists?
- Does the subset list follow proper naming conventions?
- Does the list include a top level when it is not necessary?
- Step 2 - Modules
- What dimensions are used in the module? Are they all necessary?
- What time dimensions are being used in the module? Can a Time Range be used?
- Are the dimensions in order?
- If there are any saved views, do they use the correct filtering?
- If there are saved views, are all of the line items in the view necessary?
- Is the default view clean?
- Step 3 - Line Items
- Which line items do not need a summary?
- Are text formatted line items overused?
- Are there more than 50 line items in a module?
- Are there excessive subsidiary views?
- Are there line items used as headers where the format is not set to No Data?
- Step 4 - Formulas
- Are there line items that can be placed in a systems module rather than within a calculation module?
- Are there any formulas that that combine text strings?
- Are there any formulas that are daisy chains?
- Are there long formulas, such as complex IF THEN ELSE statements?
- Is there an excessive use of the FINDITEM function?
- Are there SUM and LOOKUP combinations?
- Is the TEXTLIST function used?
- Do any formulas use the SELECT function, especially with time?
- Do any of the line items use conditional formatting with summaries turned on?
- Step 5 - Actions
- Are all the actions necessary?
- Do any of the actions result in errors when they are run?
- Check the data sources. Are some of them lists or modules?
- Check the data sources. Does each data source have an action associated with it?
- Step 6 - Time
- Is the main time scale of the model larger than it needs to be?
- Additional Resources
- Model Optimization Tracker