Product lineage - AWS Supply Chain

Product lineage

Product lineage refers to the relationship established between products and their previous versions or alternate products. Demand Planning uses the product lineage information to create surrogate history for such products, which serves as a forecast input for demand predictions.

Product lineage supports the following patterns:

  • A single product has one lineage or alternate product = 1:1

    Product lineage pattern = 1:1

    The following example shows an 1:1 scenario.

    Product lineage pattern = 1:1
  • A single product has more than one product as lineage or alternate = Many:1

    Product lineage pattern = Many:1

    Demand Planning supports product lineage relationship modeled as both chain or flattened methods.

    • Chain format – You can directly model lineage relationships like A to B and B to C. In the following example. Demand planning will model the lineage relationship as A to B, B to C, and A to C.

      Predecessor Successor

      A

      B

      B

      C

      The following example shows an Many:1 scenario - Chain format

      Product lineage pattern = Chain format
    • Flattened format – Demand Planning will continue to support lineage information in A to B and A to C format. In the following example, Demand planning will model the lineage relationshop as A to B and A to C. B to C is not considered.

      Predecessor Successor

      A

      B

      A

      C

      Note

      Chain format will only support 10 levels of lineage relationship. If you have more than 10, you can use flattened format to model the lineage relationship.

    The following example shows an Many:1 scenario - Flattened format

    Product lineage pattern = Flattened format
  • A single product can be lineage or alternate for more than 1 product = 1 : Many

    Product lineage pattern = 1:Many

To enable the product lineage feature, you can define the lineage relationship for the different versions of the products or alternates/substitutes in the product_alternate data entity. For more information, see Demand Planning.

If your instance was created on or after September 11, 2023, you will see product_alternate data entity in the AWS Supply Chain data Connection module. If your instance was created before September 11, 2023, create a new data connection to enable the product_alternate data entity for ingestion.

To ingest data into the product_alternate data entity, follow the guidelines below:

  • product_id – The primary product to create the forecast.

  • alternative_product_id – Previous version of the product or alternate/substitute product.

    To consider multiple alternative_product_id for a single product_id, enter them in separate rows.

  • Demand Planning will consider the data ONLY when the values are provided in the following format.

    • alternate_type is similar_demand_product.

    • status is active.

    • alternate_product_qty_uom is the text percentage.

    • alternate_product_qty – Enter the proportion of history of the alternate product you want to use for forecasting new products in the alternate_product_qty data field. For example, if it is 60%, enter 60. When you have multiple alternative_product_id for a single product_id, the alternate_product_qty does not have to add up to 100.

  • The eff_start_date and eff_end_date data fields are required. However, you can leave this field empty and Demand Planning will autofill with 1000 and 9999 years respectively.

When the forecast is created using product lineage data, you will see an indicator Forecast is based on alternate product's history on the Demand Planning page when you filter by product ID.

The following table shows an example of how Demand Planning Product lineage feature works based on the data ingested into the product_alternate data entity.

Column Required or Optional Example 1 Example 2 Example 3 Example 4 Example 5 Example 6 Example 7 Example 8 Example 9 Example 10 Example 11

product_id

Required Product 123 Product 123 Product 123 Product 123 Product 123 Product 123 Product 123 Product 123 Product 123 Null Product 123

alternative_product_id

Required Product XYZ Null Product XYZ Product XYZ Product XYZ Product XYZ Product XYZ Product XYZ Product XYZ Null Product XYZ

alternate_type

Required Similar_Demand_Product Similar_Demand_Product Null or a different value Similar_Demand_Product Similar_Demand_Product Similar_Demand_Product Similar_Demand_Product Similar_Demand_Product Similar_Demand_Product Similar_Demand_Product Similar_Demand_Product

status*

Required active active active inactive active active Null active active active active

alternate_product_qty

Required 100 60 100 100 Null 100 100 100 100 100 60

alternate_product_qty_uom

Required percentage percentage percentage percentage percentage Null or a different value percentage percentage percentage percentage percentage

eff_start_date

Required 2023-01-01 00:00:00 2023-01-01 00:00:00 2023-01-01 00:00:00 2023-01-01 00:00:00 2023-01-01 00:00:00 2023-01-01 00:00:00 2023-01-01 00:00:00 Null 2023-01-01 00:00:00 2023-01-01 00:00:00 Null

eff_end_date

Required 2025-12-31 23:59:59 2025-12-31 23:59:59 2025-12-31 23:59:59 2025-12-31 23:59:59 2025-12-31 23:59:59 2025-12-31 23:59:59 2025-12-31 23:59:59 2025-12-31 23:59:59 Null 2025-12-31 23:59:59 Null

Expected behavior

NA 100% of product XYZ's history from 1/1/2023 to 31/12/2025 will be used to forecast product 123. Invalid mapping since alternative_product_id is missing. Invalid mapping since alternate _type is not 'similar_demand_product'. Inactive mapping. Invalid mapping since alternate_product_qty is missing. Invalid mapping since alternate_product_qty_uom is missing or not percentage. Invalid mapping since status is missing. Ingestion will fail. Ingestion will fail. Invalid mapping since product_id and alternative_product_id are missing. Ingestion will fail.

NA NA NA NA NA NA NA NA

Demand Planning will auto-populate the eff_start_date to year 1000. This scenario is valid and data ingestion will not fail.

Demand Planning will auto-populate the eff_end_date to year 9999. This scenario is valid and ingestion will not fail.

NA

Demand Planning will auto-populate the eff_start_date to year 1000 and eff_end_date to year 9999. This scenario is valid and ingestion will not fail.

The following example explains how Demand Planning will interpret when the status is set as inactive and the product lineage is in chain format.

Column Column Status

A

B

Active

B

C

Inactive

C

D

Active

Demand planing considers the status of the first root and child mapping as the status for the entire chain.

A to B Active

A to C Active

A to D Active

B to C Inactive

B to D Inactive

C to D Active