Essbase @MOVMAX

Applies a moving n-term maximum (highest
number) to an input data set. Each term in the set is replaced by a trailing
maximum of n terms, and the first terms
(the n-1 terms) are copies of the input
data. @MOVMAX modifies a data set for smoothing purposes.


@MOVMAX (mbrName [, n [, XrangeList]])
Parameter Description
mbrName Any valid single member name or member combination, or a function that
returns a single member or member combination.
n Optional. A positive integer value that represents the number of values
that are used to calculate the moving maximum. The default is 3.
XrangeList Optional. A valid member name, a comma-delimited list of member names,
member set functions, and range functions. If XrangeList is
not specified, Essbase uses the level 0 members from
the dimension tagged as Time.


  • The @MOVMAX function calculates a trailing, rather than a
    centered, maximum. For example:

      Trailing Maximum      Centered Maximum
        1   2   3              1   2   3
                3                  3
  • While calculating the moving maximum, @MOVMAX skips #MISSING values.
    For example, if one value out of four is #MISSING, @MOVMAX calculates
    the maximum of the remaining three values.
  • If you use an Essbase member set function
    to generate a member list for the XrangeList parameter
    (for example, @SIBLINGS), to ensure correct results, consider the order in
    which Essbase sorts the generated member list. For
    more information, see the Oracle Essbase Technical Reference topic for the member set function you
    are using.
  • When you use @MOVMAX in a calculation script, use it within
    a FIX statement. Although FIX is not required, using it may improve calculation
  • When you use @MOVMAX across a large range in a sparse dimension,
    you may need to increase the size of the calculator cache. For more information
    on the calculator cache, see the Oracle Essbase Database Administrator’s Guide.


The following example is based on the Sample Basic database. Assume
that the Measures dimension contains an additional member, Mov Max.

"Mov Max" = @MOVMAX(Sales,3,Jan:Jun);

In this example, the @MOVMAX function smooths sales data for the first
six months of the year (Jan through Jun). The results of @MOVMAX can be used
with the @TREND function
to forecast maximum sales data for a holiday season (for example, October
– December).

This example produces the following report:

            Root Beer    New York    Actual
                 Sales        Mov Max
                 =====        =======
Jan               551           551
Feb               641           641
Mar               586           641
Apr               630           641
May               612           630
Jun               747           747

In this example, Essbase uses three values at
a time to calculate the moving maximum. The first two values (Jan,Feb) for
Mov Max and the first two values for Sales are the same. The value for Mar
represents the trailing maximum of Jan, Feb, and Mar. The value for Apr represents
the trailing maximum of Feb, Mar, and Apr. The remaining values represent
the trailing maximum for each group of three values.

See Also

  • @TREND