CMP -- United Business Media

Intelligent Enterprise

Better Insight for Business Decisions

UBM
Intelligent Enterprise - Better Insight for Business Decisions
Part of the TechWeb Network
Intelligent Enterprise
search Intelligent Enterprise





May 9, 2002

Temporal Dimensions

Understanding the relationship between age and time will help you build better models for perishable goods

By Erik Thomsen

Time is a measurable aspect of all events and is nearly always included in analytic business solutions. Although age (in the physical sense) is an equally omnipresent function of time, for many business applications such as inventory management, portfolio management, physical asset management, and employee pension plan management, age is most usefully represented as a separate temporal dimension even though the resulting pair of dimensions is interdependent. In this installment, I describe how to combine time and age dimensions and define multidimensional recursive formulas to create analytic solutions for the inventory management of perishable materials.

Let's begin with a simple, age-ignoring, inventory model based on Table 1. One analytic schema for this data could be:


(TIME.FISH.) ~ QTY_RECEIVED , QTY_SENT

The two variables in the schema, Qty_Received and Qty_Sent, are both measures of flow, namely flow in and flow out respectively. Stock, or quantity on hand, is derivable from the difference between flows in and out. A first attempt at expressing Stock in terms of flows is the following:


QTY_ON_HAND ,
TIME. , 
FISH. = 
QTY_RECEIVED - QTY_SENT

This formula yields the calculated values for QTY_ON_HAND in Table 2.

Lagged Time Dependence

By simple inspection, the expression seems true for Feb. 1. But what about Feb. 2? Here, simple inspection of the inventory reveals a problem: Although the quantity of flows in and out of inventory on Feb. 2 was the same, clearly the quantity of fish on hand on Feb. 2 needs to reflect the surpluses accruing from Feb. 1. So the formula for fish stock needs to include a lagged time component. As the following formula shows, stock on any one day is a function of flows in and out as well as stock from the previous day.


QTY_ON_HAND , 
TIME. , 
FISH. = 
(QTY_ON_HAND , TIME.-1) + (QTY_ RECEIVED - QUANTITY_ SENT)

This lagged time dependence is more generally called recursiveness or recursion. As it stands, the formula says that the quantity on hand for any time (in this case, day), is a function of the quantity on hand the previous day plus flows in minus flows out on the day the new quantity on hand (the quantity on hand in the left-hand side of the expression) is evaluated.

Can you spot any implicit assumptions with this formulation? How about time of day? Assuming a normal scenario where the two variables QTY_RECEIVED and QTY_SENT represent daily aggregates of transactional information and thus the derived variable QTY_ON_HAND also represents a daily aggregate, the question remains: Does QTY_ON_HAND apply to the beginning of the day or the end of the day? As the previous formula is written, QTY_ON_HAND applies to the end of the day since the flows in and out are taken from the same day as the calculated QTY_ON_HAND variable. If you wanted a measure of stock that reflected what was available at the beginning of the day, you would need to net out the flows from the day before rather than from the same day as the following illustrates:


QTY_ON_HAND (BEGINNING OF DAY),
TIME. , 
FISH. = 
((QTY_ON_HAND + QTY_ RECEIVED - QUANTITY_ SENT) , TIME.-1) 

Finally, in any analytic solution that relies on recursive formulas defined against dimensions that have a first member (as is typically the case in any warehousing or warehousing-based system), there needs to be a first (or seed or initial) value from which the recursive function is defined. Initial values are typically defined with a separate formula or clause wherein the recursive formula (assuming its lag component refers back only one time period), applies to the second through Nth time instance and the initial value is seeded for the first time instance as the following shows:


QTY_ON_HAND (BEGINNING OF DAY), 
TIME.2-N. , 
FISH. = 
((QTY_ON_HAND + QTY_
RECEIVED - QUANTITY_ 
SENT) , TIME.-1) 
QTY_ON_HAND (BEGINNING OF DAY), 
TIME.1 , 
FISH. = 0

Aging Gracefully

Now you're ready for aging! As I stated at the beginning, the goal is to systematically track not just how much fish is in stock on any particular day but also the age of those stocks. Fish is perishable, after all, and after a certain point, any fish still in inventory will need to be tossed or sold on a secondary market as pet food.







IE Weekly Newsletter
Subscribe to the newsletter
    Email Address