- Logic that needs to be customized for the particular organization. If every organization could use the same logic, then there would only be need for one off-the-shelf software solution for every organization, but even small organizations often find they need a high degree of customization to be effective.
- Logic that changes relatively often. Every organization that hopes to survive must adapt to changing laws, changing markets and evolving risks and opportunities, but the cost, time and dangers of changing the logic embedded in traditionally-structured software holds back this vital adaptation.
The example involves determining whether a particular product needs to be re-ordered because inventory is low. On the face of it, it seems that it should be a relatively simple calculation. Many businesses simply create a "reorder point", which is the inventory level where the product is re-ordered. This simple approach has the following problems, however:
- Shipping costs can be reduced and better volume discounts obtained if re-ordering is done less frequently and in larger shipments.
- Limited storage space and spoilage restrict the size of re-orders.
- Demand for particular products can sometimes be quite variable and difficult to predict, for example if Oprah features a product on her television show, making it impossible to be 100% sure that you will always be able to remain stocked in all items.
- Some products are more important to the business than others and must be re-ordered more frequently if necessary. For example, if a grocery chain runs out of a popular brand of beer even occasionally customers will stop going to that chain, but they won't stop using the store just because once in a while the store doesn't have saffron.
- Products are assigned an "importance" value between 0 and 1, with a low importance, 0.1 for example, being assigned to a product like saffron, and a high importance, 0.9 for example, being assigned to a product like Bud Light.
- Re-ordering regimens are identified as daily, weekly, monthly or quarterly re-orders. Daily re-orders are only performed for high importance products, and weekly, monthly and quarterly used for progressively less important products.
- Each product has a "lead time", which is the time from placing the order until it is available for sale. The projected sales during this lead time for each product are calculated and compared to current inventory. For high importance products, the product is re-ordered when the amount on hand is below 115% of projected sales, and for low importance products, it's re-ordered when the amount on hand is below 95% of projected sales.
The "(is) product reorderable" determines if the product is important enough to be re-ordered more frequently, that is, daily or weekly. The "(is) product needed" determines if the inventory has fallen low enough in relation to the projected sales to be reordered. Both of these are "calculated inputs", meaning that they are defined in BBL. Here is the definition for "reorderable":
The "product importance" is compared to a cut-off value for each reorder type, daily, weekly or monthly, to determine if the product is eligible for re-order for that type of order. All products can be re-ordered if it's a quarterly re-order.
Finally, here is the definition for the "product needed" input:
The product is needed if the quantity in stock is less than the projected sales during the time it takes to receive the product and make it ready for sale, adjusted up 15% if it's a high importance product to reduce the chances of running out in the meantime, or adjusted down by 5% to reduce costs of frequent reordering when it's a product that doesn't matter so much of you run out.
- Determine the "lead time" for each product--the time it takes from ordering until the product is ready for sale. It includes the time it takes to process the order, the time it takes for it to be filled, shipped and received, and the time it takes to place it "on the shelf" ready for sale.
- Estimate the cumulative sales of the product during this lead time, taking into account such factors as seasonality and promotions. This requires estimating daily sales and summing them for the lead time period.
The projection for a single day could possibly be done in BBL, though, as well as the lead time. These would be inputs to a conventional process, probably SQL, that produces the "projected sales" input to the inventory re-ordering. Whether it's a good idea to use BBL for daily projection and lead time calculations depends on how complex they are and how often they change.
In the example, the BBL can be expected to change relatively frequently in order to "fine tune" the algorithm to maximize cost savings and customer satisfaction. These two factors can be visualized as the two axes of a chart, as follows:
The chart shows a linear relationship between cost and customer satisfaction. It assumes a dollar of cost increase produces a dollar of increased customer satisfaction. A competitive, adaptive business strives to always make this curve more shallow, to get more than a dollar of satisfaction from a dollar of expense. In fact, that is practically the definition of "profit". "Fine tuning" business algorithms such as the inventory re-order calculation is an important way to achieve these gains. The changes which may be considered in the BBL to fine tune the algorithm may include:
- Changing the "reorder type" options, for example by adding a bi-weekly or bi-monthly reorder type.
- Changing the "importance" thresholds for allowing re-ordering of products with greater or lesser frequency.
- Adding additional "importance" thresholds for determining the percentage of projected sales to be applied when comparing to current inventory, and changing those percentages for different importance categories.
It's true that a conventional software application could be written to allow an analyst to modify these kinds of parameters. I myself have written a number of programs like that. BBL, however, allows greater flexibility as to how the algorithms can be modified without reprogramming. Also, the interfaces to such "configuration" tools, written by different teams over some period of years, tend to be inconsistent, leading to potential confusion and longer learning curves for users. BBL offers the possibility of a single, consistent, and highly flexible platform for development of logic that can be expressed as a flat, functional calculation, plus it facilitates use of the same logic on different software platforms and for different purposes, and migration to new platforms.
Not everything can be expressed in the BBL language, but a lot can be. By using BBL to express and maintain business logic that needs to adapt to changing conditions, an organization can achieve more rapid and more effective response to pressures and opportunities.