OR/MS Today - August 2002

Software Review

Enterprise Optimizer

Geared toward the business planning and simulation market, unique product from River Logic boasts plenty of power and flexibility

By Thomas W. Knowles

Enterprise Optimizer (EO) is an interesting and unique software product. EO is based on the Ph.D. research of Dr. Robert Whitehair, president and founder of River Logic, Inc. EO is oriented toward the business planning and simulation market, according to Whitehair. EO is best applied in operations/supply chain management environments. Because the underlying methodology is multiple-time-period, mixed-integer linear programming, deterministic decision environments are most appropriate. If the uncertainty is at the heart of the decision problem, solving a deterministic model is not adequate. However, there are many decision problems that have small uncertainties for which solving a deterministic model can give extremely useful results. Continuous process industries fit this very nicely so early users of EO have included forest products, petroleum, steel and chemical companies. Adopters range from large companies that want to consolidate their business planning to small companies looking for a strategic advantage. Although manufacturing operations predominate users, EO can be used in many other business planning situations, e.g. medical or other professional services.

Two aspects of EO are unique. First, models are built using icons. Thus, the user never has to create the underlying mixed integer LP model symbolically; no defining decision variables and no building constraints. Instead, the user builds the model by dragging and dropping icons onto a window, connecting them with links, and populating data tables for the objects (and links, which are a special type of object).

The second unique aspect of EO is its ability to create financial reports based on the optimized results. The financial reports include Profit and Loss, Balance Sheet, Cash Flow Statement and others that can be downloaded from EO Online. Also, users can create their own custom reports and dashboards, and export the reports to Excel for additional analysis.

River Logic perceives its competition as Excel and homegrown systems built on top of an optimizer. The typical user wants the financials associated with planning. Although some might think of ERP systems as EO's competition, River Logic does not. According to Whitehair, EO is a strategic tool, not a tactical tool, although some users find it useful for tactical problems. Organizational responsibilities of users include CFOs, strategic planners, product management, plant managers and internal consulting groups.

Before we discuss the graphical model building, we need to examine system objects, particularly the Enterprise Object. The browser window accesses Reports, Dashboards, Queries, System Objects, Objects (the actual objects representing components of the system) and Relations. The Enterprise Object is a system object and is where the number and duration of the time periods is specified. For example, a one-year time horizon could be represented as three one-month periods and three one-quarter periods. The model would contain six periods, with the first three being of duration 1 (month) and the last three of duration 3 (months). Also, the Enterprise Object is where you specify whether a facility is open, closed, or let the model decide.

The objects/icons available to build a model representing the enterprise include Purchase, Conversion, Inventory, Sales and Transport as well as the Link (sometimes called a Relation) Object, which must connect each of the other objects. Three other object types are Financial Report, Source of Funds and Use of Funds. You specify the characteristics of an object by populating its tables. For example, the Purchase Object can be used to represent a supplier of raw material(s). For that object there are tables for Purchase Activity, Adjustment Data, Analysis Results, Volume Discount Data, and Transaction Drivers.

Let's discuss some of these tables to illustrate the general table structure of other objects. The data inputs for the Purchase Activity table include name, cost/unit, other costs/unit (useful for segregating costs for reporting purposes), minimum and maximum units/period, and minimum and maximum units (over the time horizon). As is true in many of the object tables, the per period inputs in the Purchase Activity table can be used to initially populate the tables for each of the periods in the MTP (multiple time period) tables to reduce the required data entry. Of course, these values can be changed using the Adjustment Data table to reflect differences between the periods. Also, the tables can be populated from data that resides in external databases or spreadsheets.

The Volume Discount table gives the quantity discount information. If no quantity discount exists, there are no rows in the table. If there are multiple discounts depending on volume, there will be one row in the table for each discount step. The data inputs include item name, discount point (in units), discount price/unit, percent discount, retroactive (i.e., all-units or incremental discounts) and fixed discount. The fixed discount could be used to model a rebate received if the total volume exceeds the discount point. Note that you can specify the discount either as a price/unit or as a percent of the price in the Purchase Activity table.

Inventory Objects, as you would expect, contain materials obtained from Purchase Objects for use in Conversion Objects. Or, they contain materials yielded from Conversion Objects for disposal in Sales Objects. Inventory Objects also allow for beginning and ending inventories, and the ability to constrain the volume of material carried over from one time period to the next.

Conversion Objects enable a representation of any process in any industry, e.g., a manufacturing facility. Two important aspects of the Conversion Object are processes and resources. Often a resource represents a machine. The Resource Activity table contains a row for each resource/machine. The data inputs include minimum and maximum straight time hours/period, minimum and maximum overtime hours/period, minimum and maximum straight time and overtime hours for the time horizon, labor cost/hour, and the fixed cost/period of the resource and percent downtime.

The Process Activity table of Conversion Objects defines processes and their characteristics. More than one resource may be used in a process. The data inputs include process units/hour, cost/unit, cost/hour, setup time, setup cost, minimum and maximum units/period and total over the time horizon. As you would expect, if the volume of the process is greater than 0 in a period, the setup cost and setup time are incurred once in the period. No sequencing is done within a period.

Similar to Purchase Objects, a Sales Object's primary function is to sell or dispose of material. Transport Objects are especially useful for network models when many ship-from and ship-to points exist, where they allow for a much simplified model structure.

A Plant Location Example

Consider a plant location problem with three plants and five marketing regions. The plant data is shown in Table 1. Table 2 contains data for the marketing regions, including a minimum and maximum required for each. The shipping costs per unit from each plant location to each marketing region are in Table 3.

Plant Data
Mfg. Cost, $/unit
Fixed Charge
B 4,000 $16.00 $18,000
C 5,000 $14.50 $17,000

Table 1

Marketing Region Data
Marketing Region
Minimum Req.
Maximum Req.
Selling Price, $/unit
2 1,500 3,000 $40.50
3 3,000 5,000 $40.25
4 1,000 3,000 $40.40
5 3,500 6,000 $40.30

Table 2

Transportation Cost, $/unit
B 3.35 2.55 3.10 4.85 3.10
C 1.90 2.10 1.30 2.70 2.90

Table 3

The problem is to choose which plant locations to use, how much to produce at each plant, and how much should be shipped from each plant to each marketing region so that profit is maximized. The amount shipped to each marketing region must be between the minimum and maximum required. It is assumed that there is a single product.

There are many EO representations of the problem to be solved. Figure 1 shows one EO representation of the plant location problem. We illustrate this with a single time period. However, by making additions to the Time Period Definition table of the Enterprise Object, we could make it a multiple time period model. Figure 1 also shows the object palette for our example. Figure 1 contains one Conversion Object for each plant. A Sales Object represents each marketing region. Note that an Inventory Object is required between any objects of the Purchase, Conversion, Sales and Transport types. Consequently, an Inventory Object follows each plant and an Inventory Object precedes each marketing region. A Transport Object connects the plant Inventory Objects to the Marketing region Inventory Objects.

Software review - Enterprise Optimizer

Figure 1: Representation of the plant location problem.

The first step in building the EO model is to drag-and-drop the icons from the object palette to build the visual model as in Figure 1. After having inserted the other objects, the user adds the links between them. For example, the link from an Inventory Object to a Sales Object can be either sort or mix type. A sort type is a one-to-one relationship: a material is taken from inventory and sold. A mix type is a one-to-many relationship: multiple materials are defined as a group and sold together.

Let's focus on the Conversion Object, Plant A. Its important information includes the capacity, fixed cost and variable manufacturing cost/unit. Plant A could be represented in much more detail than the problem description provides. For example, there could be multiple products, multiple machines at Plant A, and multiple processes that have different yields of the multiple products. Because of the simpler problem, there are many places where it is not necessary to specify input values and you can accept EO's default values. If necessary, a blank row in a table is inserted and the table values are entered. First, in the Resource Activity table, define Machine A as a resource. Then, specify "Minimum ST/period" and "Maximum ST/period," where ST refers to straight time (as opposed to overtime). The Process Activity Table could contain a line with table headings and entries as follows: Process Description|Line A; Resource|Machine A, $/unit|15; Max Units/Period|5000; Process Units/hr|10,000. The "15" is the variable manufacturing cost/unit. The "5000" is the capacity (if Plant A is open). The Process Units/hr value is chosen arbitrarily so that the Maximum ST/period constraint on Machine A is certain to be nonbinding. This EO formulation associates the limited capacity and manufacturing cost with the process, not the resource. In the Facility Definition Table of the Enterprise Object, Plant A's fixed cost is specified and the Decision Switch is set to "Decide."

Another set of inputs is associated with the selling price and requirement amounts for the marketing regions. These inputs are specified in the Sales Objects. The Sales Object for Marketing Region 1 has a Sales Activity table. Among the table headings and entries are: $/unit|40 (the selling price); Minimum units/period|2000; Maximum units/period| 3000. Note that there could be an input for Discounts, Returns and Commission Rate — the default is 0. Also, the Minimum Total Units (default 0) and Maximum Total Units (default 10,000,000) would be limits on the total over multiple time periods.

In Inventory A, "Product" is the material defined in the Inventory Activity table. The link from Plant A to Inventory A specifies that one unit of "Product" results from each unit of the Process named Line A. The only table for the link from Inventory A to the Transport Object is Transfer Activity. The shipping costs per unit are entered in the Cost Definitions table for the Transport Object. There is one table row for each route from a Conversion Inventory Object to an Inventory Object for each Sales Object. The display follows the standard EO convention of black table entries being inputs and blue table entries being derived from the optimized solution. The links leaving the Transport Object have a single table, Transfer Activity. The Inventory 1 Object has an Inventory Activity table. Because this problem is a single-time period, most of its columns are not relevant, but some are listed to indicate some of the capabilities for a multiple time period problem: Minimum Begin Units, Maximum Begin Units, Minimum End Units, Maximum End Units, Minimum Carryforward Units, Maximum Carryforward Units and Holding Cost/Unit. Note the "End" values refer to the end of the time horizon whereas "Carryforward" refers to other end of period inventory levels.

The optimal solution from EO is the same as obtained by solving the integer linear programming model using LINGO from Lindo Systems, Inc.

Financial reports

Figure 1 shows that financial reporting entities have been created for each of the plants, the combined marketing regions and the company. To build a financial reporting entity for Plant A, you give the value "Plant A" to the facility variable name for the Conversion Object and its Inventory Object. Then you drag the Financial Report icon, drop it onto the window, and give the same value to its facility variable name. All the Marketing Regions were given the facility variable name of Marketing Region so they were reported together. The Company entity is a special report type called a "Rollup Facility." Links connect the other reporting entities to the Company, which combines the information from each of them to a composite report. One of the useful attributes of EO is that the user can select the level of aggregation for financial reporting. Among the pre-built financial reports is "Profit and Loss by Facility MTP." To populate the report, chose the Generate Report menu item from the available reports. Figure 2 shows the Profit and Loss statement for the Company. The reports for the entities that were rolled up to create the Company are in the same report. The reports can be easily exported to Excel.

Software review - Enterprise Optimizer

Figure 2: Profit and Loss statement for the company.

The user can customize the chart of accounts. Transaction drivers specify the accounting treatment of transactions, e.g., account debited or credited and when it is reflected (this period or later) for transactions. For example, the user can specify the relative proportions that go to cash and accounts receivable for a Sales Object. For an MTP model, creating a cash source/use report and a balance sheet for each period can give information in a form very familiar to top management. The default is an unconstrained balance sheet, but EO has the ability to impose constraints on ratios and balance sheet items associated with debt covenants.

Dashboards allow the user to create, view and print summary across more than one object of the EO model. Dashboards also can be used to display data in customized formats. The user can create custom dashboards or download pre-built ones from EO Online. Figure 3 shows the result of using a pre-built dashboard to display the Sales results for the plant location example.

Software review - Enterprise Optimizer

Figure 3: Result of using a pre-built dashboard to display the Sales results for the plant location example.

The Solver

River Logic licensed the basic mixed integer LP solver from the Russian Academy of Science and improvements continue. No speed benchmarking was done, but the vendor claims that the solver is competitive with other optimizers on models that have the structure resulting from EO. Examination of the solution log shows that standard branch and bound steps are used: preprocess the model, solve the continuous problem using a simplex solver, then branch and bound. Solver parameters that the user can control include the optimality tolerance, iteration limit and memory allocated. Sometimes a decision problem has several possible choices, and choosing one eliminates the possibility of choosing any other choices in the set. EO defines these Constraint Sets at the enterprise level. The solver treats these as special ordered sets.

Implementation and Usefulness to OR/MS Community

EO is technically sound. Installation was via the Web as was the acquisition of the unlock key. Installation was smooth and error free. Telephone customer support was excellent. EO has a huge number of attractive features. EO has been averaging a new release each year. Each release brings a host of new features. Relative to EO 3.1, EO 4.0 added many new financial reporting capabilities (including Economic Value Added), other cost buckets on all links for cost segregation, inventory shrink rate, unit conversion factors on all non-financial links, and integer or continuous variable specifications for purchase, conversion and sales decision variables.

The documentation is well designed. EO has an extensive help system that runs about 500 pages if printed. Also, a Web-based "Introduction to Enterprise Optimizer" course leads the user through the steps of building a simple example model.

EO has great potential for the OR/MS community. Licensed users can download example models, pre-built dashboards and reports from EO Online. The implementation is very high quality. There is no size limitation on the models that can be solved, given sufficient memory.

EO is easy to use, once its structure is understood. For example, experienced model builders recognize that users often make data-entry errors or are too aggressive in the constraints they want to impose. Either way, the result can be that there is no feasible solution and debugging the reasons can be difficult for the user. EO has extensive data checking capabilities that can identify the fact that there is no feasible solution before the model is optimized. For example, the user might forget to include a row in an Inventory Object table that should use a process defined for a Conversion Object in another table. Data checking would catch this. This is particularly important because of the necessity to make entries in so many tables.


EO has tremendous capabilities. For example, the objective need not be maximization of the net income (i.e., profit maximization) although that is the default. Maximizing NPV is easily done. You can imagine that the diagram could be extremely complicated with multiple products, machines, processes, sales regions, raw material suppliers, etc. It is possible to assign a collection of objects to a metanode to simplify the appearance. Then, by drilling down you can see the results at the detailed level.

EO also provides "Opportunity Values" that OR/MS professionals call reduced costs and dual prices. A useful report gives the 10 most positive and 10 most negative opportunity values; these are used to identify bottlenecks. Of course, opportunity values should be used with great care for models with integer decision variables.

There are many other EO representations of the plant location problem. You could use a Purchase Object before or instead of the Conversion Objects. Also, you could represent the problem with just five objects (C -> I -> T -> I -> S) by using macro objects. Even simpler, the Transport Object could have been eliminated.

EO will not replace optimizers and modeling languages. There certainly are decision problems that will not fit in the EO format. Often, the trick of using a system with a designed format is exploiting its capabilities in unintended ways. For example, EO assesses inventory costs based on the end-of-period inventory. If you desire to use another assessment scheme, you must keep within EO's structure, but you may be able to accomplish the other assessment by subtle exploitation of EO's capabilities.

Because EO has so much power and flexibility, a casual user will not be able to use it effectively without help. The surface has only been scratched in this review. Even more, subtleties of primary versus secondary flows, development of custom dashboards and reports, customization of icon appearance (use your own bitmaps) and column headers, facilities versus locations, tariffs (e.g., duty drawbacks), taxes and transfer prices between countries, Standard versus Macro objects, autofill versus MTP, etc. are not easy to grasp. River Logic is developing channel partners that assist in developing planning models. These include accounting firms, people with expertise in the process industries and consultants — both external and internal. You can expect to hear more about this powerful system.

Product Summary

System Requirements
The minimum memory required to run EO 4.0 is 64MB, but 256MB is recommended. A 2 GB hard drive is required with a minimum of 650 MB of free disk space. Windows operating systems beginning with Windows 95 are supported. Excel 97 (or later) and the 32-bit ODBC driver are required.

Product Information
Enterprise Optimizer 4.0 is available from:

     River Logic, Inc.
     800 Cummings Center
     Suite 355W
     Beverly, MA 01915

     Phone: (978) 753-5000
     Fax: (978) 753-5001
     Web: www.riverlogic.com
     Email: info@riverlogic.com

Pricing Information:
The commercial list price for the Enterpriser Optimizer(r) software:
EO Office Edition ($495-$995 depending upon volume)
  • Used by sales, business and plant managers (MS Excel users), executives, etc.

    EO Professional Edition (from $10,000/license to $2,000/license depending upon volume)
  • Used by power users (consultants, analysts, OR/MS professionals, economists, etc)
  • Comes in single pack ($10K), 4-pack ($25K), 10-pack ($50K), 40-pack ($125K) and 100-pack+ ($200K)

    Other special pricing information:
    River Logic Academic Program:
         Students in the academic program will pay $49 for a 12-month license for the Academic version of EO.

    Professors in the academic program would pay nothing for the use of EO Office Edition software ($495-$995 value) in exchange for making the following commitments:
  • To include EO Academic in a minimum of two courses during the 12-month period
  • To assign students in the EO courses to purchase EO academic for $49 per license

    In addition, River Logic would provide professors with the means to "author" and "publish" the following materials on EO Online:
  • 1-hour WebEx seminars in various topics
  • Models, reports, dashboards, etc.
  • White papers
  • Methodologies for research and/or implementation of technology

  • Vendor Comments

    Editor's note: It is the policy of OR/MS Today to allow developers of reviewed software an opportunity to clarify and/or comment on the review article. Following are comments from Dr. Robert Whitehair, president and founder of River Logic.

    We want to thank Professor Knowles for his time and effort in reviewing Enterprise Optimizer® 4.0 Professional Edition. EO is used to model a wide range of mission-critical decisions, including product mix, capacity planning, capital investment analysis, M&A analysis, outsourcing, distribution, sales strategy and many others. EO automatically calculates valuable unit costing information for all materials and processes.

    For the OR/MS community, EO provides a unique rapid prototyping and modeling tool, and is highly valued by companies no longer able or willing to support custom LP and MILP models. Users find they can build models quickly by using the default values of the Enterprise and other Objects.

    EO is also a rapid solution development platform used to create comprehensive solutions for business planning, business intelligence, revenue/profit optimization, financial management, training, publishing, supply chain management and capital management. Combined with its advanced data connectivity capabilities, EO's dashboards, queries and reports create an easy to use, fully integrated solution that maximizes the value of existing investments in information infrastructure. EO is complementary to the Microsoft Office Suite. More than two-thirds of users import and export data from/to Excel, Access, SQL Server or Oracle. As a development platform, EO is an excellent compliment to ERP, CRM, SCM and BI systems.

    EO Online (EOO), available to all licensed users, allows users to download software updates, sample models, reports and dashboards, as well as access FAQ and online training. EOO is part of RLI's iCOR server technology, which is an Oracle-based content management and data repository system with royalty tracking. From within Enterprise Optimizer, users can integrate content available on EOO directly into their EO model. iCOR and EO form the backbone of RLI's rapid solution development platform that enables our partners to cost effectively deploy high-value Web services to their existing users and markets.

    In September, RLI will release Enterprise Optimizer 4.5. Significant enhancements include improved data connectivity features and easier model management. Additional new features include an updated menu system, security, enhanced dashboards, solver improvements and an external data warehouse. Future versions, due in 2003 and beyond, will include adding an API, third-party solvers, simulation engines, the ability to run on an Itanium (64-bit) processor and compliance with MS .NET.

    Product information, tutorials and a free trial version of Enterprise Optimizer are available on River Logic's Web site at www.riverlogic.com.

    Call for Nominations:
    Software Review Editor

    OR/MS Today is looking for a software review editor to replace Susan Palocsay. "I don't believe anyone should hold any position for more than five years," Palocsay said in announcing her "retirement" from the post. Palocsay is a professor of Computer Information Systems/Operations Management at James Madison University.

    Candidates interested in the non-paid position should have a working knowledge of a wide range of relevant software. The software review editor is responsible for establishing a pipeline of software reviews by matching software products with appropriate reviewers and editing the reviews for publication. The software review editor works with software vendors, volunteer reviewers and OR/MS Today Editor Peter Horner to produce six reviews a year (one per issue).

    Candidates should submit a vitae and a brief note outlining their qualifications and interest via e-mail to both Peter Horner (horner@lionhrtpub.com) and Susan Palocsay (palocssw@jmu.edu) as soon as possible. Horner may also be contacted by phone at (770) 587-3172. The new software review editor will assume the post as of January 2003.

    Thomas W. Knowles is a professor of Management Science and Operations Management at the Stuart Graduate School of Business at Illinois Institute of Technology. His teaching and research focus on optimization methods and applications. He has more than 20 years of experience as a consultant on optimization-based planning systems. He is the author of a management science textbook and numerous papers.

  • Table of Contents

  • OR/MS Today Home Page

    OR/MS Today copyright © 2002 by the Institute for Operations Research and the Management Sciences. All rights reserved.

    Lionheart Publishing, Inc.
    506 Roswell Rd., Suite 220, Marietta, GA 30060 USA
    Phone: 770-431-0867 | Fax: 770-432-6969
    E-mail: lpi@lionhrtpub.com
    URL: http://www.lionhrtpub.com

    Web Site © Copyright 2002 by Lionheart Publishing, Inc. All rights reserved.