Zum Hauptinhalt wechseln
Adaptive Planning
Concept: Model Design Best Practices

Concept: Model Design Best Practices

Some universal best practices can help improve the performance of your model. Use these guidelines to design and build a solid foundation. Model design isn’t a one-size-fits-all process. A model must meet your specific planning needs. It must also mirror the infrastructure of your business.

Use Level Attributes Instead of Level Dimensions

Levels mimic the organization structure of your business. Example: Levels can represent departments, profit centers, cost centers, or geographical regions.
You can associate attributes or custom dimensions to levels. Use these points to help you make a decision:
  • Level attributes are the faster way to do almost exactly what level dimensions can do.
  • Level dimensions can do more than attributes in some unique cases.
When you're leaning toward dimensions, try attributes first. It's easy to switch from attributes to dimensions. It's more difficult to switch from dimensions to attributes.
When you're switching from dimensions, audit reports and formulas throughout your model. Make necessary adjustments to preserve historical data.

Apply Version Availability

Version availability is a level setting. The setting prevents you from accessing the level in certain versions. It's a way to retire a level without losing data.
Make the level unavailable on the current plan version to:
  • Avoid the mistakes and confusion that you risk when you only add DO NOT USE to the level name.
  • Preserve historical data in older versions. When you delete a level, you delete the data associated with the level for all versions, even locked and archived versions.
The setting works with actuals versions too. With actuals versions, specify the month and year to start hiding the level.

Remove 1-1 Levels

1-1 levels force hierarchical structures to match. Example: The USA geographic hierarchy is Country > State > City. The UK hierarchy is Country > City. A 1-1 level structure forces a midlevel in the UK to match the USA. The planning model supports a ragged hierarchy, so you can remove forced 1-1 levels to improve usability and performance.
Forced 1-1 Level Hierarchy
Better Level Hierarchy
United States
  • California
    • San Francisco
    • Los Angeles
United Kingdom
  • UK Sub
    • London
    • Brighton
Mexico
  • Mexico Sub
    • Mexico City
United States
  • California
    • San Francisco
    • Los Angeles
United Kingdom
  • London
  • Brighton
Mexico City

Use Account Prefixes

To simplify formula debugging, use prefixes for your custom and metric account codes. Use M_ for all metric accounts and C_ for all custom accounts. Prefixes make it easier to find these accounts in the formulas.

Use Calculated Accounts

Any data point that's a number or a grouping of other accounts can be a calculated account. Calculated accounts use default formulas to drive data. They can save time and effort. When used effectively, they can improve performance.
Here are ways to use calculated accounts:
  • Replace ad hoc formulas when you find yourself writing a lot of formulas in sheets or reports.
  • Replace shared formulas for general ledger and custom accounts when the formula is the same for all levels. You can then create formula overrides per version (including actuals).
  • Replace metric accounts for simple mathematical equations. Metric accounts recalculate at every level, which slows down the performance for simple mathematical equations. Use custom accounts with default formulas for simple sums and differences. Reserve metric accounts for complex ratios.

Optimize Formulas

  • Replace
    IF
    and
    DIV
    with
    IFF
    and
    DIVF
    , respectively.
    IFF
    and
    DIVF
    reduce the number of evaluations Workday must do.
  • Avoid referencing
    Top Level (+)
    because it forces a recalculation of the rollup at every level. Instead:
    • Create an assumption account equal to that part of your formula. Then, reference the assumption in the formula.
    • Use the Allocation Wizard to define the rules when allocations use the formula.
Example:
Slower
Better
divf(acct.headcount,acct.headcount[level=Top Level(+)])
divf(acct.headcount, assum.TotalHC)
-----
assum.TotalHC
is an assumption account that equals
acct.headcount[level=Top Level(+)]

Optimize Custom Dimensions

Custom dimensions enable you to add your own dimensions to the standard dimensions. Standard dimensions are levels, accounts, time, and versions.
  • Schedule time to remove unused dimensions and dimension values from your model. Keeping the dimension list clean improves performance and eliminates distractions.
  • In general, use list dimensions when possible.
Understand the pros and cons of list dimensions:
List Dimension
Hierarchical Dimension
Can't use as level dimensions.
Can use as level dimensions.
Evaluates faster.
Evaluates slower.
Can use with attributes to create alternate rollups.
Rolls up according to a single hierarchy.
Enables you to hide dimension values from specific versions with version availability.
Version availability is a dimension value setting. It prevents you from accessing the dimension value in certain versions.
No version availability.

Organize Plan Versions

  • Use folders to organize your plan versions.
    To save time, move current versions to the top of the version list. Your team won't need to scroll past years of historical plans to get to the current plan.
  • To save some effort, drop the current plan version in 2nd position. Then drag the older one down.

Update the Left Scroll Limit

Schedule time to change your
Left Scroll Limit
. This reduces the size of the version for increased performance. It also removes irrelevant time periods from your sheets. See Move the Left Scroll Limit.
For default versions, you can't change the left scroll limit. To work around this, temporarily make another version the default.

Use Virtual Versions

Create virtual versions for:
  • Constant currency reporting. Virtual versions combine the data from any version with the exchange rate from another version. See Example: Constant Currency Reporting with Virtual Versions.
  • Quick maintenance for reports that compare versions. Setup virtual versions for reporting content, such as
    Current Forecast
    and
    Prior Forecast
    . Then, build your reports using the virtual versions. When you change the virtual version's base version, all your reports and dashboards automatically change too.

Synchronize with Your Source System

Consider letting your system of record define the structure of your model. The platform supports metadata synchronization from your source system through the Integration capability. When you add a new account, level, or dimension to your source system, it automatically displays in your model. This approach is best if you plan at the same level that you capture data in the source system. You can also do a mix of approaches.
Contact us to add Integration to your model if you don't already have it.

Naming Conventions for Codes and Name Fields

For words to avoid and other guidelines, see  Reference: Naming Conventions Best Practices.