Metadata Validation Messages

Metadata Validation checks are applied against specific relationships within metadata in order to warn against situations that can cause data integrity issues, performance issues or other issues. It is strongly recommended that you apply the validation error recommendations to minimize risks of data integrity issues and take advantage of best practice performance considerations.

Primary Members Must Exist Before Shared Members

Primary members must exist before shared members (above the shared member in the hierarchy) for the following dimensions:

  • Scenario

  • Period

  • Account

  • Intercompany

  • Movement

  • Data Source

  • Multi-GAAP (if exists)

  • User-created Custom dimensions

Example validation message:

Shared member should not exist before the primary member.

Resolution:

Move the shared member to a position below the primary member.

Level 0 Member Data Storage Types Must Be Valid

The Data Storage type must be valid for all level 0 members:

  • Entity, Movement dimensions: Store, Never Share, or Shared

  • Account, Data Source, Multi-GAAP, User-created custom dimensions: Store, Never Share, Shared, or Dynamic Calc

Example validation message:

The Data Storage should be Store Never Share, Shared or Dynamic Calc for Level 0 members.

Resolution:

Change the Data Storage selection as described above.

Note:

Currently the Metadata Validator will display an error for any Level 0 Dynamic Calc members of the Movement Dimension except for seeded members.

In future releases, "Dynamic Calc" will be allowed except for FCCS_Closing Balance hierarchy, as long as they have a valid Member Formula. As a first step towards this change, Dynamic Calc is added to the list of valid Data Storage selection options for Level 0 Movement members in the Simplified Dimension Editor (SUIDE).

Level 0 Members Should Not Be Dynamic Calc Without Formulas

Any valid level 0 Dynamic Calc member must have a valid Member Formula for the following dimensions:

  • Multi-GAAP (if exists)

  • User-created Custom dimensions

Example validation message:

Level 0 members should not be Dynamic Calc without member formulas in Rate data storage.

Level 0 members should not be Dynamic Calc without member formulas in Consol data storage.

Resolution:

Add a valid formula to the Dynamic Calc member, or change the Data Storage properties to Store, Never Share or Shared. For Rate Cube accounts, check whether the account is needed in the Rates Cube. If it is not needed, then delete the account from the Rates Cube using the Dimension Editor, or change "Rates Consol op" to "Not Used for Cube" from the Simplified Dimension Editor.

Parent Members Should Not Have Member Formulas

Parent members should not have Member Formulas for the following dimensions:

  • Entity

  • Account

  • Movement

  • Data Source

  • Multi-GAAP (if exists)

  • User-created Custom dimensions

Example validation message:

Parent member should not have member formula.

Resolution:

Remove the Member Formula from the parent member.

Aggregation Operators for All Children of Dimension Names Must Be Ignore or Never

The aggregation operator should be Ignore or Never if a member is a child of a dimension name.

  • Entity dimension: Ignore for both Consol cube and for Rates cube

  • Other dimensions: Ignore or Never for Consol cube and Ignore for Rates cube

Example validation message:

The Consol Operator for all children of the dimension name should be Ignore.

The Consol Operator for all children of the dimension name should be Ignore or Never.

Resolution:

Change the aggregation operator as described above. Note that the aggregation operators for seeded members should already be correct.

Account Type and Aggregation Operators Must Match

Within the balanced Balance Sheet in the Account dimension, the account types of the parent and child accounts must match with the appropriate aggregation operator. The combination of parent account type and child account type determines whether the aggregation operator should be Addition or Subtraction. Ensuring that the account types and aggregation operator match will ensure that the balance sheet data aggregates properly to a balanced Balance Sheet.

If the "normal sign" (that is, Debit or Credit) is the same for the parent account and child account then the aggregation operator must be Addition. If the "normal sign" is different for the parent account and child account, then the aggregation operator must be Subtraction.

Parent Account Type Child Account Type Aggregation Operator
Revenue (Credit) Revenue (Credit) Addition
Revenue Expense (Debit) Subtraction
Revenue Asset (Debit) Subtraction
Revenue Liability (Credit) Addition
Revenue Equity (Credit) Addition
Revenue Saved Assumption Addition
Expense (Debit) Revenue Subtraction
Expense Expense Addition
Expense Asset Addition
Expense Liability Subtraction
Expense Equity Subtraction
Expense Saved Assumption Addition
Asset (Debit)

Revenue

Subtraction
Asset

Expense

Addition
Asset

Asset

Addition
Asset

Liability

Subtraction
Asset

Equity

Subtraction
Asset

Saved Assumption

Addition
Liability (Credit)

Revenue

Addition
Liability

Expense

Subtraction
Liability

Asset

Subtraction
Liability

Liability

Addition
Liability

Equity

Addition
Liability

Saved Assumption

Addition
Equity (Credit)

Revenue

Addition
Equity

Expense

Subtraction
Equity

Asset

Subtraction
Equity

Liability

Addition
Equity

Equity

Addition
Equity

Saved Assumption

Addition
Saved Assumption Any type Addition

Example validation message:

Account Consol Operator should be Addition based on parent and child account types.

Account Consol Operator should be Subtraction based on parent and child account types.

Resolution:

Change the Account Type of parent or child or change the aggregation operator.

Note that the seeded balance sheet hierarchy must reflect the following structure:

The seeded balance sheet grouping account (FCCS_Balance Sheet) must be the first member following the seeded system accounts and exchange rate accounts.

The first child of FCCS_Balance Sheet must be the seeded balanced Balance Sheet top member. Currently either:

FCCS_Total Balance Sheet-Net Asset Approach

Or

FCCS_Total Balance Sheet-Traditional Approach

The aggregation operator for these accounts can be Addition, Subtraction, or Ignore. Ignore is suggested (but not required) unless you intend to report from the "grouping" member.

The aggregation operator for any other children of the FCCS_Balance Sheet grouping should ideally be Ignore but can be Addition or Subtraction if reporting from the "grouping" member is required.

Any descendants of the immediate children of FCCS_Balance Sheet must be Addition or Subtraction and must match the combination of the child and parent account types.

Note that this validation is applied to all hierarchies within the FCCS_Balance Sheet grouping member (with the exception of the seeded Cash and Non-Cash hierarchy). If you wish to create an alternative hierarchy that is not subject to this validation check, the hierarchy can be placed under the FCCS_Income Statement grouping account.

Parent Store or Never Share Members of a Custom Dimension Should Not Be Used as a Shared Member

Parent members that are Store or Never Share data storage should not be used as a Shared member in the custom hierarchy. Applicable to the following dimensions:

  • Multi-GAAP (if exists)

  • User-created Custom dimensions

Example validation message:

A Store or Never Share primary parent member should not be used as a Shared member.

Resolution:

Remove the shared member from the alternative hierarchy, create a new parent in the alternative hierarchy and share the level 0 members under the new parent.

All Parent Members in the Multi-GAAP and Custom Dimensions Should Be Dynamic Calc Data Storage

The Parent members in the Multi-GAAP and Custom Dimensions should have the Dynamic Calc Data Storage property.

If they are not set to Dynamic Calc, a Warning message is displayed to alert you that this issue might cause problems in the application.

Intercompany Elimination Members and Total Eliminations Members Should Not Be Moved in the Hierarchy

The Intercompany Elimination member should not be moved out of the Total Eliminations hierarchy.

The Total Eliminations member should not be moved out of the Total Data Source hierarchy.

Example validation message:

Intercompany Elimination member should not be moved outside of Total Eliminations.

Total Eliminations member should not be moved outside of Total Data Source.

Resolution:

Move the Intercompany Elimination or Total Eliminations members to the correct location in the hierarchy.

Custom Member Formulas Should Not Be Added Under the Total Balance Sheet Hierarchy

Custom Member Formulas should not be added under the Total Balance Sheet hierarchy. If you create a Dynamic Calc member with a member formula in the Account dimension Total Balance Sheet hierarchy, the system displays an Error message during metadata validation to alert you to potential issues with Balance Sheet calculations.

Creating Shared Members for FCCS_No Data Source Member Is Not Allowed

Creating shared members for the FCCS_No Data Source member is not allowed.

Example validation message:

Shared instances for FCCS_No Data Source are not allowed.

Resolution:

Remove the shared instances of the FCCS No_Data Source member.

Validation for the Account Dimension Solve Order

This validation is applicable only when you are using the Dense Sparse Optimization option with Period and Movement as the Dense dimensions. The Solve Order property for the Parent members with the storage type as Dynamic Calc in the Account dimension should be 58.

Example validation message:

Solve Order for this member should be 58.

Resolution:

Set the solve order property for the specified member as applicable.

Validation for the Consolidation Dimension Solve Order

The following validation does not apply when you use the Dense Sparse Optimization option with Period and Movement as the Dense dimensions.

If Advanced Consolidation is not enabled, set the solve order for the following members to 26.

  • FCCS_Contribution Total

  • FCCS_Contribution

  • FCCS_Parent Total (based on feature enablement)

  • FCCS_Proportion

If Parent Input is enabled, set the solve order for the following members to 26.

  • FCCS_Contribution Total

  • FCCS_Contribution

  • FCCS_Parent Total

Example validation message:

Solve Order for this member should be 26.

If you are using the Dense Sparse Optimization option and the Parent Input feature is enabled, the solve order property for the FCCS_Parent Total and its parent members should be 51.

If you are using the Dense Sparse Optimization option, but have not enabled the Ownership Management feature, the solve order property for the FCCS_Proportion member and its parent members should be 51.

Resolution:

Set the solve order property for the specified member as applicable.

Validation for the Data Source Dimension Solve Order

The solve order property for the following members should be 28. It does not apply when you use the Dense Sparse Optimization option with Period and Movement as the Dense dimensions.

  • FCCS_Total Data Source

  • FCCS_TotalInputAndAdjusted

  • FCCS_Total Eliminations

Example validation message:

Solve Order for this member should be 28.

Resolution:

Set the solve order property for the specified member as applicable.

Validation for the Movement Dimension Solve Order

Solve Order Values for the Standard Option (Account as Dense dimension)

If you are not using the Dense Sparse Optimization option, the solve order property for the following members should be 53:

  • FCCS_OpeningBalance_Cash

  • FX_Total_NonCash

  • FCCS_ClosingBalance_Cash

  • FCCS_ClosingBalance_Variance

The solve order property for the following members should be 25.

  • FCCS_Mvmts_Operating

  • FCCS_Mvmts_Investing

  • FCCS_Mvmts_Financing

  • FCCS_CashFlow

  • FCCS_CashFlow_Operating

  • FCCS_CashFlow_NetIncome

  • FCCS_CashFlow_AdjustmentsToNetIncome

  • FCCS_CashFlow_DepreciationAndAmortization

  • FCCS_CashFlow_NetAssets

  • FCCS_CashFlow_AccountsReceivable

  • FCCS_CashFlow_Inventories

  • FCCS_CashFlow_OtherCurrentAssets

  • FCCS_CashFlow_AccountsPayable

  • FCCS_CashFlow_OtherCurrentLiabilities

  • FCCS_CashFlow_Investing

  • FCCS_CashFlow_Acquisitions

  • FCCS_CashFlow_Disposals

  • FCCS_CashFlow_CapitalExpenditures

  • FCCS_CashFlow_ProceeedsFromSalesOfPPE

  • FCCS_CashFlow_OtherInvestingActivities
  • FCCS_CashFlow_Financing

  • FCCS_CashFlow_IssueOfStock

  • FCCS_CashFlow_ProceedsFromDebt

  • FCCS_CashFlow_RepaymentOfDebt

  • FCCS_CashFlow_OtherFinancingActivities

Example validation message:

Solve Order for this member should be 25.

Solve Order Values for the Dense Sparse Optimization Option

If you are using the Dense Sparse Optimization option, the solve order property for the following members should be 59:

  • FCCS_CashChange

  • FCCS_OpeningBalance_Cash

  • FX_Total_NonCash

  • FCCS_ClosingBalance_Cash

  • FCCS_ClosingBalance_Variance

For the following members, if the Control-to-Date View Storage option is enabled, set the solve order to 53.

  • FCCS_CashChange

  • FCCS_OpeningBalance_Cash

  • FCCS_FX_Total_NonCash

  • FCCS_ClosingBalance_Cash

Resolution:

Set the solve order property for the specified member as applicable.

Validation for the Period Dimension Solve Order

If you are using the Dense Sparse Optimization option with Period and Movement as the Dense dimensions, the solve order for the following members should be 53.

If you are not using the Dense Sparse Optimization option, the solve order property for the following members should be 52.

  • YearTotal

  • HY1

  • HY2

  • Q1

  • Q2

  • Q3

  • Q4

Example validation message:

Solve Order for this member should be 52.

Resolution:

Set the solve order property for the specified member as applicable.

Validation for the View Dimension Solve Order

If you are using the Dense Sparse Optimization option with Period and Movement as the Dense dimensions, the solve order for the following members should be 53.

YTD, HYTD, QTD, YTD_RULE, HYTD_RULE, QTD_RULE

If you are not using the Dense Sparse Optimization option, the solve order property for the following members should be 27.

YTD_RULE, HYTD_RULE, QTD_RULE

Example validation message:

Solve Order for this member should be 27.

Resolution:

Set the solve order property for the specified member as applicable.