Cost rollup in project currency

  • Release version: Xanadu
  • Updated August 1, 2024
  • 3 minutes to read
  • Summarize
    Summarized using AI
    This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.

    Summary of Cost rollup in project currency

    This document explains how cost rollup calculations work in ServiceNow projects and sub-projects when they involve different currencies. It focuses on how amounts entered in functional currency fields convert to project currency fields and how financial data rolls up from sub-projects to parent projects considering currency variations.

    Show full answer Show less

    Cost Conversion in Projects

    When you create a project using the functional currency in the Default view, you can manually enter or update amounts in fields such as Planned Capital, Planned Operating, Actual Cost, and Planned Benefit. These values are automatically converted to the project currency and stored in corresponding project currency fields (e.g., Planned Cost in Project Currency). This conversion is only possible if the project does not have attached cost plans, benefit plans, or expense lines.

    Rolling Up Financials Across Projects with Different Currencies

    The behavior of rolling up financials from sub-projects to parent projects with different currencies is controlled by the com.snc.project.multicurrency.rollupifdifferent property:

    • True: Allows association of sub-projects and parent projects with different currencies and enables rollup by converting sub-project amounts to the parent project currency based on the budget reference rate. The rolled up amount is approximate due to exchange rate fluctuations.
    • False: Allows association of projects regardless of currency differences but rolls up costs only when sub-project and parent project currencies match.

    Interaction with Functional Currency Rollup Property

    The com.snc.project.multicurrency.rollupifdifferent property behavior depends on the setting of the com.snc.project.rollup.cost property:

    • If com.snc.project.rollup.cost is false, sub-projects can associate regardless of currency differences, but costs do not roll up.
    • If com.snc.project.rollup.cost is true and com.snc.project.multicurrency.rollupifdifferent is false, cost rollup occurs only when currencies match.
    • If both properties are true, sub-projects with different currencies can be associated and their costs rolled up with currency conversion.

    Common Errors and Restrictions

    Improper property configurations can cause errors during sub-project and parent project association:

    • When com.snc.project.rollup.cost is false, costs won’t roll up despite associations.
    • If com.snc.project.rollup.cost is true but com.snc.project.multicurrency.rollupifdifferent is false, associating projects with different currencies is blocked with an error: “System policy does not allow parent and child projects to have different project currency.”

    Practical Implications for ServiceNow Customers

    Understanding these properties enables you to configure project financial rollups accurately based on your organization's currency requirements. You can:

    • Ensure correct cost conversion and reporting across projects with multiple currencies.
    • Configure rollups to either restrict or allow cross-currency financial aggregation.
    • Prevent association errors by aligning property settings with your intended project currency management strategy.

    Cost rollup calculation in projects and sub-projects with different currencies varies with the budget reference rate. The rate at which the amount is converted depends on the conversion rate.

    Convert amount entered in functional currency fields to project currency

    When you create a project in functional currency of the Default view, you can manually enter or update the amount in the Planned capital, Planned operating, Actual cost, and Planned benefit fields. As you enter values in these fields, the amount is converted to project currency and stored in the corresponding project currency fields such as Planned cost in project currency, Planned operating in project currency, Actual cost in project currency, and Planned benefit in project currency fields.

    Note:
    You can do so only if the project does not have a cost plan, benefit plan, or expense lines attached to it.

    Roll up project financials from sub-projects to parent projects

    Use the com.snc.project.multicurrency.rollup_if_different property for financial rollups when the sub-projects and parent project have different project currencies.

    Table 1. Multicurrency cost rollup property behavior
    Property flag Behavior
    True If the property is set to True, then you can:
    1. Associate a sub-project to a parent project, where both the projects have different project currencies.
    2. Roll up the sub-project amounts to the parent project amounts. However, the accuracy of the rolled up amount in the parent project varies because of the currency variation.
      • If the project currencies of the parent project and the sub-project are the same, then the project currency amounts from the sub-projects to its parent and the top project are rolled up by adding up the amounts in the sub-project, and the rolled up amount is accurate.
      • If the project currencies of the parent project and the sub-project are different, then all the costs of the sub-projects are converted to the project currency of the parent or the top project, referencing the Budget Reference Rate. The rate at which the amount is converted depends on the exchange rates between the project currencies, and the specified time period at which the conversion is made. Hence, the rolled up amount is only an estimate or an approximate value.
    False If the property is set to False, then you can:
    1. Associate any number of sub-projects to a parent project, where the project currencies are same or different.
    2. Roll up only if the project currencies of the sub-project and the parent project match.

    However, the behavior of com.snc.project.multicurrency.rollup_if_different property is different when flagged along with com.snc.project.rollup.cost property.

    Table 2. Multicurrency cost rollup property in combination with functional currency property
    Properties flag Behavior
    com.snc.project.rollup.cost property is false You can associate any sub-projects with parent project that have same or different project currency but the costs of sub-projects do not roll up to the parent project.
    com.snc.project.rollup.cost property is true and com.snc.project.multicurrency.rollup_if_different property is false You can associate sub-projects with parent project that has the same project currency.
    com.snc.project.rollup.cost property is true and com.snc.project.multicurrency.rollup_if_different is true You can associate any sub-project that has the same or different project currency with the parent project.

    Illegal association of properties and possible errors

    Following are the possible errors that may occur while making an illegal association:

    Table 3. Property combinations for sub-project and parent project association
    com.snc.project.rollup.cost com.snc.project.multicurrency.rollup_if_different Behavior
    False Either true or false Can associate sub-project to parent project even though project currency of sub-project and parent project is different but costs from sub-project to parent project cannot be rolled up.
    True False Cannot associate sub-project to parent project if project currency of the sub-project and parent project is different.

    In such case of an association, an error message: System policy does not allow parent and child projects to have different project currency pops up.