Formulation of the composition/recipe

The wording used to describe the composition of a product and calculate the product features:

  • Costs
  • Nutrients
  • Ingredients list
  • Ingredient Declaration
  • Allergens

The composition includes:

  • The level of product in the composition
  • The components used
  • The amount used in the recipe
  • The implementation unit (kg, g, L, mL, P, m, m², Perc)
  • The type of statement:

    > Include: the component ingredients are included in the ingredients of the formulated product

    > Detail: the component ingredients is listed under the same component it

    > Consolidate: to consolidate the group statement (paste, trim, for example)

    > Omit: the component ingredients are not included in the ingredients of the formulated product

    > Do not include: the component ingredients are included in the ingredients of the formulated product but are not displayed (for example, water, sulfite)

On the formulated product, there are 3 fields necessary for the formulation:

  • Quantity after processing: it is the amount of product obtained after the conversion step taking into account the performance-related losses.
  • Product Unit (kg, L, P) product sales unit. It is this unity that defined the unit price (€ / kg ; € / L) and nutrient unit (/ 100 or / 100mL).
  • Product density: the density to convert a liter or a piece of product in kg.

Filters and Tier 2 items

The section lists of data filters enable to filter lists and display level elements greater than 1. Show Tier 2 items allows you to see the composition of a semifinished present in your composition.

Import raw materials from nutritional databases

beCPG provides CIQUAL and USDA nutritional databases. The import of raw materials is available from the composition of a product:

  • Click on the import button
  • Type the firt letters of the raw material that you want to import
  • The system then suggests a raw material
  • Select the raw material you want to import
  • Click on OK to import the raw material(you can select multiple raw materials before importing)
  • A message tells you that the products have been successfully imported
  • You can add the raw material to the composition of your product


In agribusiness, the yield corresponds to the ratio between the final product net quantity and the initial product net quantity. In fact, the latter undergoes losses during different transformation processes. Water losses during the cooking process are often the most consequent. Consequently, in beCPG, the yield enables the distinction between an uncooked product (100% of its water content) and a cooked product (100 - x water lost during the cooking). When the yield is taken into account, nutritional values are impacted. In fact, when the water content decreases, for example, its dry matter content increases. The yield is calculated thanks to the formula :

YIELD =  (Final quantity / Initial quantity) x 100

In beCPG, we name «quantity used» the initial product quantity and «Net quantity» the final product quantity. beCPG takes the yield into account according to four ways :

  • Whether by entering the yield for each raw material in the product composition :

  • or by entering the net quantity of the final product in the «Net quantity» field (in the product properties).

It is possible to see the «Yield» and «Net quantity» fields with formulated characteristics.

Impact the yield on the water ingredient

The water content of cooked products is reduced by evaporation. The quantities of other ingredients are increased in proportion to their concentration. BeCPG offers an additional parameterization to impact the "water" ingredient yield. "Qty with yield (%)" column of the ingredient tab will display quantities taking into account the evaporation of water in the product.

It is also possible to label quantities after cooking. Click here for more information.

To do this, first install the water aspect on the water ingredient and the water RM(s): Please contact us if you need assistance with this operation.

  1. Prerequisites : Be a system administrator.
  2. Retrieve the nodes of the water ingredient and water RM(s). (Only the 100% water ingredient).
  3. In the Admin console: Apply the following script.
var node=search.findNode('noeud du produit : workspace://....');

Note: If you label using quantities after yield, remember to enter the legal name of the raw material water.

Manual yield

beCPG doesn't take in account the yield when components are entered in percentages in the recipe of your product. The yield corresponds to the division of the net quantity by the quantity used in the recipe. That result cannot be computed when quantities are entered in percentages.

This is where manual yield comes in action. Enter the composition of your finished product and add a net weight in the properties of your finished good. Once this is done, go back to the composition list of your finished product. In the tab dedicated to dynamic characteristics you will see that you have the option to manually enter your yield. The system will compute the quantity used in the recipe from the yield and the net quantity. To enter manually a yield, click on edit in front of the manual yield formula. Then enter a number corresponding to your yield.


The loss in beCPG corresponds to the loss of a product quantity during transportation or production. That loss may be dure to spoilage or damage.

e.g. For cheeses, the loss of matter can be due to lipolysis or proteolysis. for apples, it can correspond to losses of quantity due to peeling.

In the case of losses, only the quantity disminushes as more product is needed to obtain the desired quantity. Therefore, when a loss percentage is entered, costs are impacted but not nutritional values. The loss is calculated with the following formula:

Loss =[ ( Quantity used / Net quantity after loss)* 100] - 100

In beCPG, the loss is added directly in composition for each raw material. e.g. a 10% flour loss on a production line requires to enter 10 in loss %. Costs for this entity will then be up by 10%.

Quantity used = Net quantity after loss * (1 + Loss / 100)
Cost with loss = Coût unitaire * Net quantity after loss * (1 + Loss / 100)

Costs before loss:

Modification of the loss for flour:

Costs after loss:

Made features

Features made simple

This allows to add features or formulas, for example:

  • Profit
  • Yield
  • HPD <78% (% Water x 100) / (100 -% lipids)

Once the product composition is set, the system calculates the characteristics of the product from the characteristics of the components when you click on the "Make" button.

Features made in columns

These characteristics also make it possible to add columns in the composition or packages (to copy, copy / paste into the notepad editor):

  • Raw material cost (€ / kg):
dataListItemEntity.costList.size ()! = 0? New java.text.DecimalFormat ("0.00 ##") size (dataListItemEntity.costList [0] .value dataListItem.qty * / (* entity.qty entity.density)). ""
  • Raw material cost (€ / kg):
dataListItemEntity.costList.size ()! = 0? New java.text.DecimalFormat ("0.00 ##") size (dataListItemEntity.costList [0] .value * dataListItem.qty). ""
  • Each Quantity (kg)

    New java.text.DecimalFormat ("0.00 ##"). Format (* dataListItem.qty entity.compoListView.dynamicCharactList.? [title == 'Nb Ech'] [0] .value)

  • Cost packaging (€ / kg)

dataListItemEntity.costList.size ()! = 0? New java.text.DecimalFormat ("0.00 ##") size (dataListItemEntity.costList [0] .value * (dataListItem.packagingListUnit.toString () == "PP" 1 / dataListItem.qty.? dataListItem.qty) / (entity.qty entity.density *)): ""
  • Cost packaging (€ / UVC)
dataListItemEntity.costList.size ()! = 0? New java.text.DecimalFormat ("0.00 ##") size (dataListItemEntity.costList [0] .value * (dataListItem.packagingListUnit.toString () == "PP" 1 / dataListItem.qty: dataListItem.qty)). ""

There are 2 types of dynamic characteristics:

  • 1 characteristic value
  • Type characteristics Column (to add columns in the composition)

For now, there is no editor to add a column-type characteristic. To do that, you must write the formula directly. Several variables are available:

  • Entity: Air formulated product
  • DataListItemEntity: access to the component and its donnnées lists (eg dataListItemEntity.costList provides access to component costs
  • DataListItem: access to the element of the composite list (Composition, Packaging)

In this mode the sum (RANGE FORM) and avg (RANGE FORM) are available:

  sum (children (DataListItem) "entity.costList [0] .value + dataListItem.qty")
 or sum (entity.compoListView.compoList.? [Parent == # root.dataListItem] "entity.costList [0] .value + dataListItem.qty")

More information about the language spel:

Format of results

By default, the system displays 4 significant figures. It is possible to specify the format of results as illustrated below:

  • New java.text.DecimalFormat ("0.00 ##"). Size (1.22222222) display 1.2222
  • New java.text.DecimalFormat ("0.00 ##"). Size (1.2200) will show 1.22
  • New java.text.DecimalFormat ("0.0000"). Size (1.2200) 1.2200 display

For more information about the possible formats, consult this page:

results matching ""

    No results matching ""