Getting Started with Cyclo (Multi Echelon Inventory Optimization)

Overview

Cyclo is Optilogic’s new Multi Echelon Inventory Optimization (MEIO) engine within Cosmic Frog. It helps supply chain teams determine where safety stock should be held across a network, how much is needed at each stage, and how service levels impact total safety stock cost and responsiveness.

Quick Start

If you just want to get going with Cyclo as quick as possible, follow these steps:

  1. Set the Technology Filter at the top in Cosmic Frog to only show tables and fields used by Cyclo
  2. Populate the core input tables:
    1. Customers
    2. Facilities
    3. Products – set Unit Value
    4. Transportation Policies – set Transport Times
    5. Inventory Policies
    6. Customer Orders or Customer Order Profiles
    7. Inventory Settings – set Target Service Level and Service Type
    8. Model Settings – set Inventory Carrying Cost Percentage
  3. Validate the model to ensure lead times, sourcing relationships, and units of measure are complete and consistent.
  4. Create one or more scenarios to compare service levels, lead times, sourcing strategies, or network configurations.
  5. Run Cyclo from the Run Settings window by selecting the desired scenarios.
  6. Review results in the Inventory Network Summary and Inventory Safety Stock Summary tables.
  7. Compare total safety stock, holding cost, and inventory positioning across scenarios to evaluate network-wide trade-offs.

What is MEIO?

Multi Echelon Inventory Optimization (MEIO) is a planning approach used to optimize safety stock across an entire supply chain network.

Cyclo, the MEIO engine, is designed to optimize safety stock placement across multi-stage supply chains that may include suppliers, manufacturing plants, distribution centers, and customer-facing locations. Instead of optimizing each node independently, Cyclo evaluates the entire network simultaneously so organizations can reduce total safety stock while maintaining desired service levels.

Cyclo uses a Guaranteed Service Model (GSM) approach to optimize service-time relationships between facilities and derive recommended safety stock levels.

Why Cyclo Matters

Cyclo helps organizations answer key supply chain questions such as:

  • Where should safety stock be held?
  • How much safety stock is actually needed?
  • Which facilities should buffer variability?
  • How do lead times affect safety stock requirements?
  • How can service levels be maintained while reducing cost?

By optimizing safety stock placement across the entire network, Cyclo can help organizations:

  • Reduce total inventory carrying costs
  • Improve customer service performance
  • Reduce duplicated safety stock
  • Increase resilience to variability
  • Better understand network bottlenecks

Cyclo is especially valuable for:

  • Complex global supply chains
  • Distribution-heavy operations
  • Networks with uncertain demand

Cyclo vs. Dendro

Both Cyclo and Dendro support inventory optimization workflows in Cosmic Frog, but they are designed for different planning problems.

In practice both can be used together:

  1. Cyclo determines optimal safety stock placement and levels across the network.
  2. Dendro helps operationalize inventory policies and ongoing planning decisions.

How Cyclo Works

Cyclo uses a Guaranteed Service Model (GSM) approach. Rather than directly optimizing safety stock quantities, Cyclo optimizes service-time commitments between facilities. Those service-time decisions are then translated into safety stock requirements.

Core Concepts

Target service level

Represents your risk tolerance – balancing the cost of holding extra buffer inventory against the risk and cost of lost sales. This is a user input. Two risk measures are available:

  • Type 1 (cycle service level): measures the probability of having zero stockouts during a replenishment cycle.
  • Type 2 (fill rate): measures the proportion of total demand fulfilled immediately from available stock.

Service Type 1 is a stricter measure than Type 2 and will in most cases lead to more safety stock.

Incoming Service Time (SI)

Time a facility expects upstream suppliers to deliver material. This is a decision variable in the optimization

Fixed Lead Time (T)

Time a facility needs to replenish – typically transport time from the upstream location to the facility and/or production/processing time at the facility. These are model inputs.

Good to know

Currently, only transportation lead times are considered by Cyclo; production/processing times will be added in a future release. To capture production/processing time, add it to the transport time for now.

Outgoing Service Time (S)

Time a facility promises to deliver to downstream customers. This is a decision variable in the optimization.

Net Replenishment Time (NRT)

The effective time window over which demand uncertainty accumulates.

Guaranteed Service Model

In a Guaranteed Service Model (GSM), each facility commits to serving downstream nodes within a defined service time. The effective exposure to uncertainty is the Net Replenishment Time (NRT):

NRT = Incoming Service Time + Fixed Lead Times − Outgoing Service Time

As NRT increases, more uncertainty accumulates and more safety stock is typically required.

Cyclo evaluates many combinations of incoming and outgoing service times across the network to find the lowest total safety stock holding cost, while reaching the target service level. The optimization is not changing any fixed lead times. Instead, it is strategically deciding where responsiveness should exist in the network.

Example: Optimizing Safety Stock Placement Across a Network

Consider a product with the following flow path:

Manufacturer → Distribution Center → Customer

Assume the following fixed lead times:

  • Transportation time from Manufacturer to Distribution Center (DC) = 4 days
  • Production/processing times at Manufacturer and DC are both 0 days
  • Transportation time from DC to Customer = 1 day

The total physical replenishment lead time across the network is therefore 5 days.

These lead times are inputs to the model and are not optimized. What Cyclo optimizes are the service-time commitments between stages. Specifically:

  • Incoming Service Time (SI) – at the Manufacturer and DC in this example
  • Outgoing Service Time (S) – at the Manufacturer and DC in this example

These service times are optimized with the goal to minimize total safety stock holding cost across the network.

In the next example scenarios:

  • We assume the Distribution Center outgoing service time as fixed at 0 days, because the customer’s orders need to be fulfilled immediately upon placement to reach the required target service level.
  • The Manufacturer outgoing service time reflects how quickly the Manufacturer replenishes the DC.
  • The DC incoming service time reflects how long the DC expects replenishment from the Manufacturer.

Scenario A – Most Safety Stock at the DC

Manufacturer ----> DC (5 days safety stock) ----> Customer

Interpretation:

  • Because the DC must respond immediately while replenishment may take 5 days, most uncertainty buffering occurs at the DC.
  • The DC absorbs nearly all demand uncertainty.
  • Inventory is positioned close to customers.
  • Customer responsiveness is maximized.
  • Downstream inventory investment is higher.

This approach is common in highly responsive distribution networks.

Scenario B – Balanced Buffering

Manufacturer (2 days safety stock) --> DC (3 days safety stock) --> Customer

Interpretation:

  • The DC buffers 3 days of uncertainty.
  • The remaining uncertainty buffering shifts upstream to the Manufacturer.
  • Inventory buffering is shared across the network.
  • Less inventory is concentrated downstream.
  • Total cost may decrease depending on holding costs and variability.

Scenario C – More Upstream Buffering

Manufacturer (4 days safety stock) --> DC (1 day safety stock) --> Customer

Interpretation:

  • Because the DC can be replenished quickly, it only needs to buffer 1 day of uncertainty.
  • Most uncertainty buffering shifts upstream to the Manufacturer.
  • Downstream inventory requirements are reduced.
  • Total carrying cost may decrease if upstream storage is less expensive.
  • The network becomes more dependent on transportation reliability.

Key Insights

The total physical replenishment exposure is driven by the same 5-day total network lead time in all 3 scenarios.

What changes is:

  • where uncertainty is buffered,
  • where safety stock is held,
  • and which combination minimizes total network inventory cost.

Cyclo evaluates many combinations of:

  • incoming service times,
  • outgoing service times,
  • inventory positioning,
  • holding costs,
  • and demand variability

to determine the optimal inventory strategy across the network.

Without MEIO, organizations often duplicate safety stock across multiple locations and optimize inventory independently at each node. Cyclo instead evaluates the network holistically and strategically concentrates inventory where it is most cost-effective, while achieving the required service level.

Cyclo Inputs and Outputs Summary

The following diagram summarizes the inputs and outputs of the Cyclo engine; they will be covered in more detail in the Cyclo in Cosmic Frog section that follows.

Cyclo in Cosmic Frog

The following workflow provides a step-by-step approach for configuring and running Cyclo.

Step 1 – Populate Input Tables

Pro tip

If you only want to see tables and fields relevant to Cyclo, you can use the Technology Filter in the toolbar at the top of Cosmic Frog. Click on the other 5 engines to hide their tables/fields, so that only the Cyclo icon is not greyed out:

The following table provides an overview of the input tables used by Cyclo, whether they are required, and their purpose. Further below, several screenshots show examples of some of the main inputs in Cosmic Frog.

Good to know

Cyclo is highly dependent on accurate network connectivity and lead time data. Missing transportation links, or inconsistent lead times can significantly affect optimization results.

Pro tip

Start with a smaller pilot network before scaling to enterprise-wide optimizations. This helps validate data quality and interpretability before running larger scenarios.

Heads up

Cyclo currently runs as a single-period model; specified periods (if any) will not be used. Multi-period capability will be added in a future release.

The following screenshots show several input tables with key Cyclo fields.

Products Table

It is important to set a Unit Value for products so inventory holding costs can be calculated.

Good to know

The Unit Value set on the Products table is a global value, which can be overwritten by product-location specific values using the Unit Value field on the Inventory Policies table.

Inventory Policies Table

The Inventory Policies table is used to indicate which locations carry inventory for which products by setting the Stocking Site field to TRUE (= carries inventory) or FALSE (= does not carry inventory). When setting the Unit Value and Carrying Cost Percentage fields here, they overwrite the global values set in the Products and Model Settings tables, respectively.

Transportation Policies Table

The Transportation Policies table is used to set up the required flow paths and specify the transportation lead time using the Transport Time field and its UOM.

Good to know

  • Instead of using Transport Time, the Transport Distance and its UOM field can be used too. Then Transport Time will be calculated from it using the Average Speed set in the Model Settings table.
  • Transport Time specified in the Transit Matrix is used as a fallback for when Transport Time is not set on the Transportation Policies table.
  • Variable Transport Time cannot yet be used by Cyclo but will be added in a future release.
  • If multiple modes exist for the same origin-destination-product combination, the one with the longest Transport Time will be used. This represents the most conservative option to calculate safety stock.

Customer Orders & Customer Order Profiles

Demand can be specified in either of the Customer Orders and Customer Order Profiles tables. If the Customer Orders table is populated it will be used and the Customer Order Profiles table will be skipped in that case. If the Customer Orders table is blank, the Customer Order Profiles table will be used.

  • Customer Orders – specify historical orders, Cyclo will calculate the demand statistics from these
  • Customer Order Profiles – specify a distribution that represents the demand and its variability for the customer-product combination
Historical demand can be specified in the Customer Orders table. A few records with orders for the same customer-product pair on different dates are shown.
Demand and its variability can be captured on the Customer Order Profiles table instead of using the Customer Orders table. Explanations of all fields available in this table can be found in the Customer Order Profiles Table section of the Adding Demand (Simulation) article, while syntax for using distributions is covered in the Throg – Simulation Distribution Syntax article.

Inventory Settings Table

The new Inventory Settings table can be used to set a global Target Service Level and the Service Type the Cyclo runs need to use. The default values are 95% and Type2, respectively.

Good to know

The Target Service Level set on the Inventory Settings table is a global value, which can be overwritten by product-location specific values using the Target Service Level field on the Inventory Policies Advanced table.

Pro tip

Aggressive service targets can significantly increase inventory and therefore holding costs. Testing multiple service-level scenarios is often valuable for identifying the optimal cost-service tradeoff.

Model Settings Table

It is important to set the Inventory Carrying Cost Percentage on the Model Settings table. If it is blank or 0, inventory holding costs are not calculated and there will be no driver to minimize safety stock.

Good to know

The Inventory Carrying Cost Percentage set on the Model Settings table is a global value, which can be overwritten by product-location specific values using the Carrying Cost Percentage field on the Inventory Policies table.

Step 2 – Validate Inputs

Before running Cyclo, verify that the supply chain network is fully configured. Recommended validation checks:

  • All facilities are connected correctly
  • Product flows are complete from farthest upstream source to most downstream demand location
  • Transportation relationships exist
  • Lead times are populated
  • Demand data is available
  • Units of measure are consistent

You can also use Cosmic Frog’s Integrity Checker and filter the results where the Relevant Technology field contains Cyclo.

Step 3 – Run Cyclo

Once the model has been built, you can optionally configure additional scenarios to run. Here 1 additional scenario is added besides the Baseline:

  1. The Baseline scenario does not contain any scenario items; it will use all the data of the input tables as is. Note that the Technology has been switched to Cycle, indicated by the light blue Cyclo icon to the right of the scenario name.
  2. A scenario named “Baseline-Type1 has been added. It contains 1 scenario item named “Type1”, which changes the Service Type (set to Type 2 in the Inventory Settings table) to Type 1. It is configured as follows:
    1. Table Name is set to Inventory Settings, since this is the table on which we want to change some data.
    2. In the Actions field, the ServiceType field’s value is set to Type1.
    3. No Conditions are used, meaning that the change will apply to all records in the table (only 1 present).

After inputs are validated and scenarios set up, users can kick off their Cyclo optimization run by clicking on the green Run button at the top right in Cosmic Frog, which brings up the Run Settings modal:

The 2 scenarios are selected to be run with the Cyclo engine. There is 1 technology parameter available, Write Input Solver, which will write the inputs as .csv files to the user’s Optilogic account when turned on. This can be helpful for troubleshooting. By default it is turned off.

During execution, Cyclo processes:

  • Demand propagation through the network
  • Service-time relationships
  • Net replenishment calculations
  • Safety stock positioning
  • Cost minimization logic

The optimization engine evaluates inventory decisions holistically across the network rather than independently by node.

Good to know

Optimization runtime may vary depending on:

  • Number of products
  • Number of locations
  • Network complexity
  • Service level values
  • Sourcing and transportation relationships

Larger multi echelon networks may require additional solve time.

Pro tip

Save intermediate model versions before running major scenario changes. This makes it easier to compare optimization outputs across different service-level or network assumptions.

Step 4 – Review Results

After the optimization is completed, review the generated outputs.

The Cyclo outputs are in 2 tables, Inventory Network Summary and Inventory Safety Stock Summary, and include:

  • Safety stock recommendations
  • Service-time commitments
  • Inventory policy recommendations
  • Total cost and cost breakdowns

Understanding Cyclo Outputs

Cyclo outputs help users understand recommended inventory placement, service-time commitments, and total network inventory cost tradeoffs.

Inventory Network Summary Table

The Inventory Network Summary summarizes results by scenario:

The Inventory Network Summary repeats the Service Type and Target Service Level and contains the total cost (=safety stock holding cost) and total safety stock by scenario. Additional fields not shown in the screenshot contain statistics of the run itself like runtime, gap, etc.

This helps users:

  • Compare scenarios
  • Quantify savings opportunities
  • Evaluate trade-offs

Inventory Safety Stock Summary Table

The Inventory Safety Stock Summary shows detailed results at the product x location level, by scenario:

By scenario, each location-product combination is listed. Stage Type indicates where in the multi echelon network the location sits.

The 4 screenshots in the next sub-sections are of additional fields on the same table and do not always show the fields of the screenshot above again.

Demand Classification

Demand is propagated upstream and the resulting mean, standard deviation and demand class are listed for each product-location combination. Note that the Customer Orders table was blank in this run and the Customer Order Profiles table shown in the screenshot further above was used by the Cyclo run.

Safety Stock and Cost Breakdown

Recommended inventory buffers and the resulting holding cost for each location-product combination.

The recommended safety stock reflects:

  • Demand variability
  • Lead times
  • Service level targets
  • Network dependencies

Note that another field not shown in the screenshot, Holding Cost, is available in this table too. Its value is the holding cost for 1 unit of product at that location for the length of the model run. The Holding Cost Contribution is calculated as this Holding Cost value multiplied with the Safety Stock value.

Service Times

Cyclo determines optimal incoming and outgoing service-time commitments and calculates the net replenishment time from them and the lead times.

These values represent:

  • Expected upstream responsiveness
  • Promised downstream responsiveness
  • Strategic inventory positioning decisions

Inventory Policies

Cyclo recommends inventory policies and their parameters.

Cyclo can recommend inventory policies and their parameters:

  • R,Q policies – policies with a fixed reorder point, R, and a fixed order quantity, Q.
    • The recommended value for R is specified in the Policy Value 1 field
    • The recommended value for Q is specified in the Policy Value 2 field
  • s,S policies – policies with a fixed reorder point, s, and an order-up-to quantity, S.
    • The recommended value for s is specified in the Policy Value 1 field
    • The recommended value for S is specified in the Policy Value 2 field

These policies help operationalize inventory decisions.

Interpreting Results

When reviewing Cyclo outputs, focus on patterns across the network rather than individual locations.

Questions to ask include:

  • Which facilities are acting as inventory buffers?
  • Where is variability accumulating?
  • Are safety stock positions aligned with strategy?
  • Which nodes drive most inventory holding cost?
  • How sensitive are results to service levels?

Pro tip

Safety stock reductions at one location may increase safety stock elsewhere. Always evaluate total network impact rather than isolated node improvements.

Best Practices

Start with Clean Data

Safety stock optimization quality depends heavily on the quality of the data.

Recommended practices:

  • Validate lead times
  • Confirm demand variability calculations
  • Standardize units
  • Verify network paths
  • Remove obsolete products

Run Scenario Comparisons

Cyclo is especially valuable for scenario analysis.

Examples include:

  • Alternative service-level targets
  • Supplier lead-time changes
  • Transportation changes
  • Facility additions or removals
  • Demand volatility changes

Scenario comparisons help quantify operational tradeoffs.

Focus on Network-Wide Performance

MEIO is fundamentally a system-wide optimization problem; avoid evaluating locations independently. The best global solution may intentionally increase inventory at one node in order to reduce much larger inventory requirements elsewhere.

Collaborate Across Functions

Cyclo outputs are most valuable when reviewed collaboratively by:

  • Supply chain planners
  • Inventory analysts
  • Manufacturing teams
  • Procurement teams
  • Transportation planners
  • Finance stakeholders

Common Questions

Why does Cyclo place more inventory at upstream locations?

In many networks, upstream buffering can reduce downstream safety stock due to variability evening out when aggregating demand from multiple downstream locations (pooling effect). This lowers the total inventory holding cost. Cyclo evaluates these trade-offs automatically.

Does higher service always mean more inventory?

Generally, yes. Higher service-level targets reduce allowable stockout risk, which usually increases safety stock requirements.

Why are service times optimized instead of inventory directly?

The Guaranteed Service Model simplifies the optimization problem and provides a scalable framework for network-wide inventory positioning. Safety stock is derived from optimized service-time relationships.

Summary

Cyclo brings advanced Multi Echelon Inventory Optimization capabilities into Cosmic Frog.

By optimizing service-time commitments and safety stock placement across the entire supply chain network, Cyclo helps organizations:

  • Reduce inventory holding cost
  • Improve service performance
  • Increase supply chain resilience
  • Better understand safety stock trade-offs
  • Optimize network-wide safety stock positioning

Cyclo is especially valuable for organizations operating complex, multi-stage supply chains where local safety stock decisions can create unintended network-wide impacts.

Please do not hesitate to contact our support team on Support@optilogic.com in case of any questions of feedback.

Overview

Cyclo is Optilogic’s new Multi Echelon Inventory Optimization (MEIO) engine within Cosmic Frog. It helps supply chain teams determine where safety stock should be held across a network, how much is needed at each stage, and how service levels impact total safety stock cost and responsiveness.

Quick Start

If you just want to get going with Cyclo as quick as possible, follow these steps:

  1. Set the Technology Filter at the top in Cosmic Frog to only show tables and fields used by Cyclo
  2. Populate the core input tables:
    1. Customers
    2. Facilities
    3. Products – set Unit Value
    4. Transportation Policies – set Transport Times
    5. Inventory Policies
    6. Customer Orders or Customer Order Profiles
    7. Inventory Settings – set Target Service Level and Service Type
    8. Model Settings – set Inventory Carrying Cost Percentage
  3. Validate the model to ensure lead times, sourcing relationships, and units of measure are complete and consistent.
  4. Create one or more scenarios to compare service levels, lead times, sourcing strategies, or network configurations.
  5. Run Cyclo from the Run Settings window by selecting the desired scenarios.
  6. Review results in the Inventory Network Summary and Inventory Safety Stock Summary tables.
  7. Compare total safety stock, holding cost, and inventory positioning across scenarios to evaluate network-wide trade-offs.

What is MEIO?

Multi Echelon Inventory Optimization (MEIO) is a planning approach used to optimize safety stock across an entire supply chain network.

Cyclo, the MEIO engine, is designed to optimize safety stock placement across multi-stage supply chains that may include suppliers, manufacturing plants, distribution centers, and customer-facing locations. Instead of optimizing each node independently, Cyclo evaluates the entire network simultaneously so organizations can reduce total safety stock while maintaining desired service levels.

Cyclo uses a Guaranteed Service Model (GSM) approach to optimize service-time relationships between facilities and derive recommended safety stock levels.

Why Cyclo Matters

Cyclo helps organizations answer key supply chain questions such as:

  • Where should safety stock be held?
  • How much safety stock is actually needed?
  • Which facilities should buffer variability?
  • How do lead times affect safety stock requirements?
  • How can service levels be maintained while reducing cost?

By optimizing safety stock placement across the entire network, Cyclo can help organizations:

  • Reduce total inventory carrying costs
  • Improve customer service performance
  • Reduce duplicated safety stock
  • Increase resilience to variability
  • Better understand network bottlenecks

Cyclo is especially valuable for:

  • Complex global supply chains
  • Distribution-heavy operations
  • Networks with uncertain demand

Cyclo vs. Dendro

Both Cyclo and Dendro support inventory optimization workflows in Cosmic Frog, but they are designed for different planning problems.

In practice both can be used together:

  1. Cyclo determines optimal safety stock placement and levels across the network.
  2. Dendro helps operationalize inventory policies and ongoing planning decisions.

How Cyclo Works

Cyclo uses a Guaranteed Service Model (GSM) approach. Rather than directly optimizing safety stock quantities, Cyclo optimizes service-time commitments between facilities. Those service-time decisions are then translated into safety stock requirements.

Core Concepts

Target service level

Represents your risk tolerance – balancing the cost of holding extra buffer inventory against the risk and cost of lost sales. This is a user input. Two risk measures are available:

  • Type 1 (cycle service level): measures the probability of having zero stockouts during a replenishment cycle.
  • Type 2 (fill rate): measures the proportion of total demand fulfilled immediately from available stock.

Service Type 1 is a stricter measure than Type 2 and will in most cases lead to more safety stock.

Incoming Service Time (SI)

Time a facility expects upstream suppliers to deliver material. This is a decision variable in the optimization

Fixed Lead Time (T)

Time a facility needs to replenish – typically transport time from the upstream location to the facility and/or production/processing time at the facility. These are model inputs.

Good to know

Currently, only transportation lead times are considered by Cyclo; production/processing times will be added in a future release. To capture production/processing time, add it to the transport time for now.

Outgoing Service Time (S)

Time a facility promises to deliver to downstream customers. This is a decision variable in the optimization.

Net Replenishment Time (NRT)

The effective time window over which demand uncertainty accumulates.

Guaranteed Service Model

In a Guaranteed Service Model (GSM), each facility commits to serving downstream nodes within a defined service time. The effective exposure to uncertainty is the Net Replenishment Time (NRT):

NRT = Incoming Service Time + Fixed Lead Times − Outgoing Service Time

As NRT increases, more uncertainty accumulates and more safety stock is typically required.

Cyclo evaluates many combinations of incoming and outgoing service times across the network to find the lowest total safety stock holding cost, while reaching the target service level. The optimization is not changing any fixed lead times. Instead, it is strategically deciding where responsiveness should exist in the network.

Example: Optimizing Safety Stock Placement Across a Network

Consider a product with the following flow path:

Manufacturer → Distribution Center → Customer

Assume the following fixed lead times:

  • Transportation time from Manufacturer to Distribution Center (DC) = 4 days
  • Production/processing times at Manufacturer and DC are both 0 days
  • Transportation time from DC to Customer = 1 day

The total physical replenishment lead time across the network is therefore 5 days.

These lead times are inputs to the model and are not optimized. What Cyclo optimizes are the service-time commitments between stages. Specifically:

  • Incoming Service Time (SI) – at the Manufacturer and DC in this example
  • Outgoing Service Time (S) – at the Manufacturer and DC in this example

These service times are optimized with the goal to minimize total safety stock holding cost across the network.

In the next example scenarios:

  • We assume the Distribution Center outgoing service time as fixed at 0 days, because the customer’s orders need to be fulfilled immediately upon placement to reach the required target service level.
  • The Manufacturer outgoing service time reflects how quickly the Manufacturer replenishes the DC.
  • The DC incoming service time reflects how long the DC expects replenishment from the Manufacturer.

Scenario A – Most Safety Stock at the DC

Manufacturer ----> DC (5 days safety stock) ----> Customer

Interpretation:

  • Because the DC must respond immediately while replenishment may take 5 days, most uncertainty buffering occurs at the DC.
  • The DC absorbs nearly all demand uncertainty.
  • Inventory is positioned close to customers.
  • Customer responsiveness is maximized.
  • Downstream inventory investment is higher.

This approach is common in highly responsive distribution networks.

Scenario B – Balanced Buffering

Manufacturer (2 days safety stock) --> DC (3 days safety stock) --> Customer

Interpretation:

  • The DC buffers 3 days of uncertainty.
  • The remaining uncertainty buffering shifts upstream to the Manufacturer.
  • Inventory buffering is shared across the network.
  • Less inventory is concentrated downstream.
  • Total cost may decrease depending on holding costs and variability.

Scenario C – More Upstream Buffering

Manufacturer (4 days safety stock) --> DC (1 day safety stock) --> Customer

Interpretation:

  • Because the DC can be replenished quickly, it only needs to buffer 1 day of uncertainty.
  • Most uncertainty buffering shifts upstream to the Manufacturer.
  • Downstream inventory requirements are reduced.
  • Total carrying cost may decrease if upstream storage is less expensive.
  • The network becomes more dependent on transportation reliability.

Key Insights

The total physical replenishment exposure is driven by the same 5-day total network lead time in all 3 scenarios.

What changes is:

  • where uncertainty is buffered,
  • where safety stock is held,
  • and which combination minimizes total network inventory cost.

Cyclo evaluates many combinations of:

  • incoming service times,
  • outgoing service times,
  • inventory positioning,
  • holding costs,
  • and demand variability

to determine the optimal inventory strategy across the network.

Without MEIO, organizations often duplicate safety stock across multiple locations and optimize inventory independently at each node. Cyclo instead evaluates the network holistically and strategically concentrates inventory where it is most cost-effective, while achieving the required service level.

Cyclo Inputs and Outputs Summary

The following diagram summarizes the inputs and outputs of the Cyclo engine; they will be covered in more detail in the Cyclo in Cosmic Frog section that follows.

Cyclo in Cosmic Frog

The following workflow provides a step-by-step approach for configuring and running Cyclo.

Step 1 – Populate Input Tables

Pro tip

If you only want to see tables and fields relevant to Cyclo, you can use the Technology Filter in the toolbar at the top of Cosmic Frog. Click on the other 5 engines to hide their tables/fields, so that only the Cyclo icon is not greyed out:

The following table provides an overview of the input tables used by Cyclo, whether they are required, and their purpose. Further below, several screenshots show examples of some of the main inputs in Cosmic Frog.

Good to know

Cyclo is highly dependent on accurate network connectivity and lead time data. Missing transportation links, or inconsistent lead times can significantly affect optimization results.

Pro tip

Start with a smaller pilot network before scaling to enterprise-wide optimizations. This helps validate data quality and interpretability before running larger scenarios.

Heads up

Cyclo currently runs as a single-period model; specified periods (if any) will not be used. Multi-period capability will be added in a future release.

The following screenshots show several input tables with key Cyclo fields.

Products Table

It is important to set a Unit Value for products so inventory holding costs can be calculated.

Good to know

The Unit Value set on the Products table is a global value, which can be overwritten by product-location specific values using the Unit Value field on the Inventory Policies table.

Inventory Policies Table

The Inventory Policies table is used to indicate which locations carry inventory for which products by setting the Stocking Site field to TRUE (= carries inventory) or FALSE (= does not carry inventory). When setting the Unit Value and Carrying Cost Percentage fields here, they overwrite the global values set in the Products and Model Settings tables, respectively.

Transportation Policies Table

The Transportation Policies table is used to set up the required flow paths and specify the transportation lead time using the Transport Time field and its UOM.

Good to know

  • Instead of using Transport Time, the Transport Distance and its UOM field can be used too. Then Transport Time will be calculated from it using the Average Speed set in the Model Settings table.
  • Transport Time specified in the Transit Matrix is used as a fallback for when Transport Time is not set on the Transportation Policies table.
  • Variable Transport Time cannot yet be used by Cyclo but will be added in a future release.
  • If multiple modes exist for the same origin-destination-product combination, the one with the longest Transport Time will be used. This represents the most conservative option to calculate safety stock.

Customer Orders & Customer Order Profiles

Demand can be specified in either of the Customer Orders and Customer Order Profiles tables. If the Customer Orders table is populated it will be used and the Customer Order Profiles table will be skipped in that case. If the Customer Orders table is blank, the Customer Order Profiles table will be used.

  • Customer Orders – specify historical orders, Cyclo will calculate the demand statistics from these
  • Customer Order Profiles – specify a distribution that represents the demand and its variability for the customer-product combination
Historical demand can be specified in the Customer Orders table. A few records with orders for the same customer-product pair on different dates are shown.
Demand and its variability can be captured on the Customer Order Profiles table instead of using the Customer Orders table. Explanations of all fields available in this table can be found in the Customer Order Profiles Table section of the Adding Demand (Simulation) article, while syntax for using distributions is covered in the Throg – Simulation Distribution Syntax article.

Inventory Settings Table

The new Inventory Settings table can be used to set a global Target Service Level and the Service Type the Cyclo runs need to use. The default values are 95% and Type2, respectively.

Good to know

The Target Service Level set on the Inventory Settings table is a global value, which can be overwritten by product-location specific values using the Target Service Level field on the Inventory Policies Advanced table.

Pro tip

Aggressive service targets can significantly increase inventory and therefore holding costs. Testing multiple service-level scenarios is often valuable for identifying the optimal cost-service tradeoff.

Model Settings Table

It is important to set the Inventory Carrying Cost Percentage on the Model Settings table. If it is blank or 0, inventory holding costs are not calculated and there will be no driver to minimize safety stock.

Good to know

The Inventory Carrying Cost Percentage set on the Model Settings table is a global value, which can be overwritten by product-location specific values using the Carrying Cost Percentage field on the Inventory Policies table.

Step 2 – Validate Inputs

Before running Cyclo, verify that the supply chain network is fully configured. Recommended validation checks:

  • All facilities are connected correctly
  • Product flows are complete from farthest upstream source to most downstream demand location
  • Transportation relationships exist
  • Lead times are populated
  • Demand data is available
  • Units of measure are consistent

You can also use Cosmic Frog’s Integrity Checker and filter the results where the Relevant Technology field contains Cyclo.

Step 3 – Run Cyclo

Once the model has been built, you can optionally configure additional scenarios to run. Here 1 additional scenario is added besides the Baseline:

  1. The Baseline scenario does not contain any scenario items; it will use all the data of the input tables as is. Note that the Technology has been switched to Cycle, indicated by the light blue Cyclo icon to the right of the scenario name.
  2. A scenario named “Baseline-Type1 has been added. It contains 1 scenario item named “Type1”, which changes the Service Type (set to Type 2 in the Inventory Settings table) to Type 1. It is configured as follows:
    1. Table Name is set to Inventory Settings, since this is the table on which we want to change some data.
    2. In the Actions field, the ServiceType field’s value is set to Type1.
    3. No Conditions are used, meaning that the change will apply to all records in the table (only 1 present).

After inputs are validated and scenarios set up, users can kick off their Cyclo optimization run by clicking on the green Run button at the top right in Cosmic Frog, which brings up the Run Settings modal:

The 2 scenarios are selected to be run with the Cyclo engine. There is 1 technology parameter available, Write Input Solver, which will write the inputs as .csv files to the user’s Optilogic account when turned on. This can be helpful for troubleshooting. By default it is turned off.

During execution, Cyclo processes:

  • Demand propagation through the network
  • Service-time relationships
  • Net replenishment calculations
  • Safety stock positioning
  • Cost minimization logic

The optimization engine evaluates inventory decisions holistically across the network rather than independently by node.

Good to know

Optimization runtime may vary depending on:

  • Number of products
  • Number of locations
  • Network complexity
  • Service level values
  • Sourcing and transportation relationships

Larger multi echelon networks may require additional solve time.

Pro tip

Save intermediate model versions before running major scenario changes. This makes it easier to compare optimization outputs across different service-level or network assumptions.

Step 4 – Review Results

After the optimization is completed, review the generated outputs.

The Cyclo outputs are in 2 tables, Inventory Network Summary and Inventory Safety Stock Summary, and include:

  • Safety stock recommendations
  • Service-time commitments
  • Inventory policy recommendations
  • Total cost and cost breakdowns

Understanding Cyclo Outputs

Cyclo outputs help users understand recommended inventory placement, service-time commitments, and total network inventory cost tradeoffs.

Inventory Network Summary Table

The Inventory Network Summary summarizes results by scenario:

The Inventory Network Summary repeats the Service Type and Target Service Level and contains the total cost (=safety stock holding cost) and total safety stock by scenario. Additional fields not shown in the screenshot contain statistics of the run itself like runtime, gap, etc.

This helps users:

  • Compare scenarios
  • Quantify savings opportunities
  • Evaluate trade-offs

Inventory Safety Stock Summary Table

The Inventory Safety Stock Summary shows detailed results at the product x location level, by scenario:

By scenario, each location-product combination is listed. Stage Type indicates where in the multi echelon network the location sits.

The 4 screenshots in the next sub-sections are of additional fields on the same table and do not always show the fields of the screenshot above again.

Demand Classification

Demand is propagated upstream and the resulting mean, standard deviation and demand class are listed for each product-location combination. Note that the Customer Orders table was blank in this run and the Customer Order Profiles table shown in the screenshot further above was used by the Cyclo run.

Safety Stock and Cost Breakdown

Recommended inventory buffers and the resulting holding cost for each location-product combination.

The recommended safety stock reflects:

  • Demand variability
  • Lead times
  • Service level targets
  • Network dependencies

Note that another field not shown in the screenshot, Holding Cost, is available in this table too. Its value is the holding cost for 1 unit of product at that location for the length of the model run. The Holding Cost Contribution is calculated as this Holding Cost value multiplied with the Safety Stock value.

Service Times

Cyclo determines optimal incoming and outgoing service-time commitments and calculates the net replenishment time from them and the lead times.

These values represent:

  • Expected upstream responsiveness
  • Promised downstream responsiveness
  • Strategic inventory positioning decisions

Inventory Policies

Cyclo recommends inventory policies and their parameters.

Cyclo can recommend inventory policies and their parameters:

  • R,Q policies – policies with a fixed reorder point, R, and a fixed order quantity, Q.
    • The recommended value for R is specified in the Policy Value 1 field
    • The recommended value for Q is specified in the Policy Value 2 field
  • s,S policies – policies with a fixed reorder point, s, and an order-up-to quantity, S.
    • The recommended value for s is specified in the Policy Value 1 field
    • The recommended value for S is specified in the Policy Value 2 field

These policies help operationalize inventory decisions.

Interpreting Results

When reviewing Cyclo outputs, focus on patterns across the network rather than individual locations.

Questions to ask include:

  • Which facilities are acting as inventory buffers?
  • Where is variability accumulating?
  • Are safety stock positions aligned with strategy?
  • Which nodes drive most inventory holding cost?
  • How sensitive are results to service levels?

Pro tip

Safety stock reductions at one location may increase safety stock elsewhere. Always evaluate total network impact rather than isolated node improvements.

Best Practices

Start with Clean Data

Safety stock optimization quality depends heavily on the quality of the data.

Recommended practices:

  • Validate lead times
  • Confirm demand variability calculations
  • Standardize units
  • Verify network paths
  • Remove obsolete products

Run Scenario Comparisons

Cyclo is especially valuable for scenario analysis.

Examples include:

  • Alternative service-level targets
  • Supplier lead-time changes
  • Transportation changes
  • Facility additions or removals
  • Demand volatility changes

Scenario comparisons help quantify operational tradeoffs.

Focus on Network-Wide Performance

MEIO is fundamentally a system-wide optimization problem; avoid evaluating locations independently. The best global solution may intentionally increase inventory at one node in order to reduce much larger inventory requirements elsewhere.

Collaborate Across Functions

Cyclo outputs are most valuable when reviewed collaboratively by:

  • Supply chain planners
  • Inventory analysts
  • Manufacturing teams
  • Procurement teams
  • Transportation planners
  • Finance stakeholders

Common Questions

Why does Cyclo place more inventory at upstream locations?

In many networks, upstream buffering can reduce downstream safety stock due to variability evening out when aggregating demand from multiple downstream locations (pooling effect). This lowers the total inventory holding cost. Cyclo evaluates these trade-offs automatically.

Does higher service always mean more inventory?

Generally, yes. Higher service-level targets reduce allowable stockout risk, which usually increases safety stock requirements.

Why are service times optimized instead of inventory directly?

The Guaranteed Service Model simplifies the optimization problem and provides a scalable framework for network-wide inventory positioning. Safety stock is derived from optimized service-time relationships.

Summary

Cyclo brings advanced Multi Echelon Inventory Optimization capabilities into Cosmic Frog.

By optimizing service-time commitments and safety stock placement across the entire supply chain network, Cyclo helps organizations:

  • Reduce inventory holding cost
  • Improve service performance
  • Increase supply chain resilience
  • Better understand safety stock trade-offs
  • Optimize network-wide safety stock positioning

Cyclo is especially valuable for organizations operating complex, multi-stage supply chains where local safety stock decisions can create unintended network-wide impacts.

Please do not hesitate to contact our support team on Support@optilogic.com in case of any questions of feedback.

Have More Questions?

Contact Support

Get in touch

Contact Sales

Get in touch

Visit Frogger Pond Community

Visit our Community