Define goal metric and rollup fields
To specify the goal metric type, participating tables, and whether you track actuals, custom or in-progress data, use the goal metric table (Metric
) and the rollup field (RollupField
) table. The goal metric and the rollup fields have a parental relationship in which all operations on the parent record are propagated to the child records. For more information about parental relationship and cascading rules, see Table relationship behavior.
Important
All goals in the hierarchy must be based on the same goal metric and time period. If you create a child goal that is based on a different goal metric, an exception is thrown. If you specify a different time period for a child goal, the system will ignore the specified time period and use the parent goal time period. You can associate a goal with a new metric, if the goal does not have a parent goal or a child goal. Otherwise, an exception is thrown when you update the goal record.
Create Goal Metric
There are two goal metric types: Amount and Count. The Amount metric type is expressed as a money value, an integer, or a decimal number. The Count metric type is an integer. For example, you can use the Amount (money) goal metric to track the revenues from all active opportunities or sales orders. An integer type can be used to track sales calls made by a salesperson. A decimal number can represent a product sold by weight, such as grain or sugar.
To specify the goal metric type and whether you are tracking data against target or stretch target, use the goal metric table (Metric
). To select Amount or Count, use the Metric.IsAmount
attribute. Use the Metric.AmountDataType
attribute to specify the Amount data type.
The possible values for this attribute are defined in the metric_goaltype
global option set. To specify whether the goal tracks data against target or stretch target, use the Metric.IsStretchTracked
attribute. To associate a goal with a metric, use the Goal.MetricId
attribute.
Each goal can track actual, in-progress, and custom data as shown in the following diagram.
To track actual, in-progress, and custom data, you use the goal table attributes, referred to as rollup fields. For example, if an opportunity is closed as “Won”, an amount of revenue generated from this opportunity can be rolled into the actual money amount rollup field. Or, if an opportunity is “Open”, the opportunity’s estimated revenue can be added to the in-progress money amount rollup field. The following table lists the relationship between the goal metric type and the rollup fields available for each type.
Goal metric type | Available rollup fields |
---|---|
Amount (money) | Goal.ActualMoney Goal.InProgressMoney Goal.CustomRollupFieldMoney |
Amount (integer) or Count | Goal.ActualInteger Goal.InProgressInteger Goal.CustomRollupFieldInteger |
Amount (decimal) | Goal.ActualDecimal Goal.InProgressDecimal Goal.CustomRollupFieldDecimal |
Other examples of rollup data are Lead.EstimatedAmount
and OpportunityClose.ActualRevenue
that can be rolled into the Goal.InProgressMoney
and the Goal.ActualMoney
rollup fields. The custom rollup fields are extra fields that you can use for integer, decimal, and money values.
Specify Rollup Fields
To specify other important rollup information, use the rollup field table.
Attribute | Rollup information |
---|---|
RollupField.GoalAttribute |
A goal rollup field, such as Goal.ActualMoney , Goal.CustomRollupFieldMoney or Goal.InProgressMoney . |
RollupField.SourceEntity |
A source table from where data is being rolled up, such as lead, opportunity, or sales order. |
RollupField.SourceAttribute |
An table attribute from where data is being rolled up, such as Opportunity.ActualValue or Lead.EstimatedValue . A source attribute and a goal rollup field must be of the same type, such as money or integer; otherwise, an exception is thrown when you create a rollup field record. |
RollupField.DateAttribute |
The date that is validated against the goal time period, such as Opportunity.ActualCloseDate or Lead.EstimatedCloseDate . A record participates in the goal rollup, if the specified date falls between the start date and the end date for the goal. For example, if an opportunity is closed between the start and end dates for the goal, revenue generated from this opportunity is added to the goal’s total revenue; otherwise, it is not included. |
RollupField.SourceState |
The state of the source record such as “Won” or” Lost” opportunity. |
RollupField.SourceStatus |
The status reason for the state of the source record, such as “Won” for won opportunities, or “Canceled” or “Out-sold” for the lost opportunities. |
RollupField.IsStateParentEntityAttribute |
Indicates whether state or status belong to the parent table. For example, for the opportunity product that does not have its own state, you can use state and status of the parent opportunity record. |
For each goal metric, you can create up to three rollup field records. Each record can specify actual, in-progress, or custom amount or count. You can use the same source table or difference source tables for all rollup field records. For example, in a goal metric that specifies the Money type, you can use an opportunity table as a source table and Opportunity.ActualValue
as a source attribute. This lets you track the actual money amounts in all opportunities that are closed as “Won”. The Opportunity.EstimatedValue
can be used to track the revenue that is expected after the opportunity is closed.