Skip to content

calc/require-aggmissg-on

Severity warning by default. It runs on calc-script bodies (.csc) in Rules only. A Script or a Template is a fragment that Deploy inlines into the Rule that invokes it, so the setting belongs to the Rule as a whole rather than to any one fragment, and this rule never fires on either one.

The Rule body must contain SET AGGMISSG ON; somewhere. Matching is case-insensitive and whitespace-tolerant, so set aggmissg on ; counts. A commented-out command does not count, and SET AGGMISSG OFF; does not satisfy the rule. When the command is missing, the warning is reported once at the top of the file.

AGGMISSG is off by default, which means Essbase does not aggregate #Missing values from children up to their parents. It skips them instead, and the parent keeps whatever number it already had. That is the behavior you want in a few narrow cases, and the wrong behavior in most planning ones. The classic symptom is a cleared child: a planner wipes out a cost center or a product line, the child is now #Missing, the Rule aggregates, and the parent still shows last week’s total because nothing was written over it. The number looks plausible, it foots against nothing, and it survives until someone drills in. With SET AGGMISSG ON; the #Missing children are treated as part of the roll-up, so the parent falls to the honest total.

This Rule body triggers the warning:

FIX("Budget", "Working", "FY26")
AGG("Entity");
ENDFIX

The message reads:

Add `SET AGGMISSG ON;`. It is OFF by default, so #Missing children are not aggregated to their parents and a parent can keep a stale value after its children are cleared.

Add the command to the header:

SET UPDATECALC OFF;
SET AGGMISSG ON;
FIX("Budget", "Working", "FY26")
AGG("Entity");
ENDFIX

Change its severity or turn it off in the Validation Rules panel, or exempt one artifact with an Exception.

This rule is a natural Exception candidate. Some cubes genuinely need #Missing left alone, a rates or driver cube where a missing rate must not roll into its parent being the usual case. Instead of turning the rule off across the workspace, keep it on and add an Exception for the few Rules that touch that cube.