Segments

Supply chains for distribution businesses can be quite large, with many thousands of products to be planned across tens of locations. Segments provide an intuitive and efficient way to manage the planning policies when the number of planned item-locations goes into the hundred thousands.

Segments represent a collection of item + location combinations that match the criteria (called also query) of the segment. They are used to a) easily filter a certain set of item-locations in reports, and b) they are used in combination with business rules to define common inventory policies for all item-locations belonging to the segment.

To define a segment, a unique name for that segment and a query are required, an optional description can also be provided. The query is an SQL-like query that can use fields from both item and location objects. Note that segments are dynamic in the sense that whether an item-location belongs to a segment or not is automatically recomputed during a plan execution. Therefore an item-location combination can get in (or out) of a segment if it matches (or no more matches) the segment’s query.

Available fields for item table are:

  • name
    category
    subcategory
    description
    cost
    owner_id : owner_id should be used though owner keyword is displayed in frePPLe.

Available fields for location table are:

  • name
    category
    subcategory
    description
    owner_id : owner_id should be used though owner keyword is displayed in frePPLe.

Check this feature on a live example

Download an Excel spreadsheet with the data for this example

In this example, we have defined four segments:

Example of segments.
  • All parts in RDC : This segment is composed of all item-locations in RDC.
    The query to define the segment is the following:
    location.name = ‘RDC’
  • All parts in shops : This segment is composed of all parts in both Tennis shop Brussels and Tennis shop Paris.
    The query to define the segment is the following (Note that the % character should be used as wildcard):
    location.name like ‘%shop%’
  • Cheap parts in Paris : This segment is composed of parts having a cost less than 20 in the Tennis shop Paris location.
    The query to define the segment is the following:
    item.cost <= 20 and location.name = ‘Tennis shop Paris’
  • Expensive parts in Brussels : This segment is composed of parts with a price higher than 50 in Tennis shop Brussels location.
    The query to define the segment is the following:
    item.cost > 50 and location.name = ‘Tennis shop Brussels’

Note the Sku Count field on the screenshot 1. This column represents the number of item-location combinations that each segment contains. This number is refreshed when a segment is saved (either after creation or edition) or when a plan is executed with the ‘Compute inventory parameters’ option ticked.

Any of the segments can be used for filtering purpose. For instance, in the Inventory Planning screen, a drop-down menu appears with the list of the defined segments to only display the collection of item-locations belonging to that segment A.

Example of segment filtering.