1. Calculation functions
  2. All Functions
  3. Time and Date Functions
  4. POST

The POST function pushes a value a set number of periods into the future.
To calculate the value of a target cell for a particular time period (PTp), POST does the following for every time period (ETp):

    • Executes the offset expression for the corresponding cell of the source for ETp.
    • If the result of the offset is equal to the number of periods that ETp lags behind the PTp, then it executes the source expression at ETp and adds the result to the target at the PTp.

You could use POST to determine how much stock is arriving at a warehouse for separate time periods. From the example below, POST would be applied to the line item 'stock.'

Syntax 

POST(line item or expression, Offset amount) 

Example

POST(IF Order? THEN Order Volume ELSE 0, Shipping lead time) 

Arguments

ArgumentData TypeDescription
Line item or
Expression
NumberValue to be posted
Offset amountNumeric line item, property, or expression
Number of periods forward

 POST(IF Order? THEN Order Volume ELSE 0, Shipping lead time)
This formula calculates the Monthly stock received.

The table below illustrates a simple, constant, POST offset. Delivery by bike takes 3 months, by truck, 2 months. 

If Order = True, then the value in Order Volume is posted in the Monthly stock
received
row. This is offset by the number of periods cited in the Shipping lead time row.


JanFebMarAprilMayJuneJulyAug

Order?



 --


--



--
Order
Volume
 
100

50

0

300

0

175

50

 0
Shipping
Method

Bike

Truck

TBD

TBD

--

Truck

Bike

--
Shipping
lead time

3 mo.

2 mo.

 --

 --

--

2 mo.

3 mo.

 0
Monthly stock
received
 
  0
 
  0

   0

150

0

300

0

175


Guidelines

  • POST can result in more than one source value being posted to a target period.
  • POST is only applicable to numbers.
  • Do not use POST for simple data offsets. OFFSET, LAG, or MOVINGSUM are more efficient.
  • If the offset expression is negative, then POST returns the number of periods ahead.
  • The time range providing arguments to a line item must match the time range for the result line item. Any formula that conflicts with this rule will be rejected. For more information, see Search page.
  • A non-time series function, used as a sub-expression of this function, must use the same time range as the line item to which the formula is applied. Combining time series functions and non-time series functions with a time range could return an unexpected result or an error message. For more information, see Time Ranges and Time Series Functions page.


Similar functions

  • OFFSET
  • LAG 
  • LEAD
  • PROFILE
  • MOVINGSUM 

Detailed examples

POST with a constant offset

For a constant offset LAG and POST behave in the same way. The offset is constant for each target period so there's only one source period that POSTs into it.


JanFebMarAprilMayJuneJulyAugSepOctNovDec

source

  1

  2

  4

 10

20

 40

100

200

400

     0

    0

     0
LAG
(source,3,0)
  0  0  0   1  2   4  10  20  40   100  200   400
POST
(source,3,0)
  0  0  0   1  2   4  10  20  40   100  200   400


POST and lag with a variable offset

For a variable offset, LAG uses the value of the offset from the target time period. POST however uses the value of the offset from the source. As more than one source period can have an offset that points to the same target period, the values for all such source periods are added to give the target value. Below the offsets for Jan, Feb and March all point to March, so the value for March is the sum of the source values for Jan, Feb, and March.


JanFebMarAprilMayJuneJulyAugSepOctNovDec
source 1  2   4  10  20  40 100200 400      0       0      0
LAG
(source,3,0)
 0  0   0    1     2    4    10   20   40 100  200  400
offset 2  1   0   2   1    0     2    1     0     0     0   0
POST
(source,offset)
  
0
   
 0
    
  7
  
  0
 
  0
 
  70
   
  0

   0

700
 
    0
  
   0

     0

POST with a conditional offset

For a conditional POST, we POST a value when a condition is met. The logical method to express this: (IF condition, then POST(...)) does not work as expected. This is because the formula expresses the value at the target period and it's the target value of the condition that is used. This controls the entire value of the target. To get the correct usage, evaluate the condition inside the POST call. Everything inside the POST call is evaluated at the source. In the case below, since the source condition is true then the source value is added to any others included in the POST to the target.


JanFebMarAprilMayJuneJulyAugSepOctNovDec
source   1   2   41020 40100200400     02,0004,000
offset   2   1   0  2  1   0    2   1    0     2  1  0
condition   --  --  --   --   -- --  --
IF condition THEN POST
(source,offset) ELSE 0
 0 0  7 0 0 0 0 0700  0  0   0
POST(IF condition THEN
source ELSE 0, offset)
 
 0 0  5 0 0  20   0  0500   0   02,000