Forestry Trailer


The forestry trailer configuration model is much more complex than the Personal Computer so it better to start with it if you have not done it before. Please refer to VariCPQ Basic: Modeling and administration for more thorough definitions and all available modeling constructs.

The trailer has 14 parameters that have been divided into three groups. In the normal process the user will first select the physical dimensions of the trailer, then wheels and other major features, and finally the accessories. However, VariCPQ does not restrict the user to this workflow and they make selections in any order if they want it.

The model is defined in the Excel file: varicpq-forestry-trailer.xlsx.


The core concepts of VariCPQ models are:

The Excel format

A configuration model is a single workbook that can contain many sheets. In this case we have only one sheet. Empty rows of the sheet are ignored. The beginning of the trailer model looks like this: trailer model 1

The meanings of the columns are:


The PRODUCT row gives information about what is being configured. The ID column contains the product code while the DESC language columns gives descriptions that are shown to the user in different languages.

trailer product

In this case the product code is VM00000230/A. However, the English description that is shown to the users is 'Forestry Trailer T800'. The price row shows the base price of the trailer that is 10000 EUR.


Parameters that are related to each other can be grouped together in the configurator form. Each group is started with a GROUP row that gives an ID to the group as well as its description that is shown to the users.

The Forestry Trailer model has three groups:


Each parameter of the model is defined in two parts. First there is the row that defines the parameter itself, and then each possible value or range of values on its own row. You can add names for values and ranges and then use the names when defining rules using constraints.


The carrying capacity is defined with the rows:


This defines that the parameter has a list of five possible values and the default value is 16. Two of the values have an English description added to them. This description is shown in VariCPQ form when given, otherwise the view shows the ID of the value. Each different carrying capacity has a price assigned to it that is added to the total price when the value is chosen. The values 12 and 16 have additional English info texts defined for then that are shown when the user presses the info button.

Three of the values, 12, 14, and 16 have the name HEAVY_LOAD defined for them. This groups them together so that it will later be possible to add a rule saying that a large carrying capacity requires four-wheel brakes.


The trailer width is defined with rows:


The definition states that value of the WIDTH must be between 2100 and 2600 millimeters with the default value 2350. The range is divided into two parts 2100-2300 and 2301-2600. This is done because that lets us to add an extra charge of 100 EUR to the wider subrange. The parameter WIDTH is not used in any constraints, so we do not need to add names to the values.


The trailer length is defined with:


This is similar to the WIDTH case except that there is only one range as all lengths have the same price. The length is a number between 6000 and 7500 millimeters with the default value 6500.


The stake height is defined with:


Here the value lies in the range 500-2000 millimeters with 1000 as the default. The range is split in three parts to show that it is possible to combine individual values with ranges in the definition of numerical attributes.


The last parameter in the BASIC group is the ground clearance that is a simple numerical parameter in the range of 700-1000 mm with default 800 mm.



TYRES is the first parameter of the WHEELS group and it is defined as:


There are three possible values and each of them has a different price. Here all values have at least one name

Values can have multiple names because that allows different constraints refer to different sets of values. There is a later constraint that applies to WIDE tyres, that is, 30/55-17 and 400/60-15.5.


There are defined with rows:


There are two brake options: 2-wheel and 4-wheel brakes that both have their own prices. The 4-wheel brakes have the name BRAKES_4 defined for it because it is needed for the constraint that says that heavy load trailers need better brakes.


A trailer may have a loading crane. The parameter is defined with rows:


The trailer either has a crane or not, so the possible values are NO and YES and including the crane adds 2500 EUR to the price. Because the crane is involved in a constraint, the YES value has also the name CRANE defined for it.


The stabilizer is another option similar to the crane. If the trailer has a crane, then the stabilizer is mandatory, but it can be taken also by itself.


As is the case with the CRANE parameter, this has two values, NO and YES, and the YES option has both a price and a name.


The first accessory parameter is the COLOR that has three possible options:


Choosing the color does not have any effect in price and there are no constraints on it so most of the columns are empty.


The TOOLBOX is another yes/no option:


Including a toolbox adds 200 EUR to the price. The YES value has the name TOOLBOX because it will be used in a constraint.


The rear work light is a yes/no option:


Here both YES and NO values have names. The name NO_LIGHT is here to illustrate that it is possible to expresses not-conditions by naming the values suitably. You can test that the work light is not selected by checking if the value NO_LIGHT is selected.


The Forestry Trailer model has five configuration rules that are modeled using all three constraint types.

Brakes for heavy-load trailers

The first rule is that heavy-load trailers need 4-wheel brakes. This is stated as a REQUIRES constraint:

trailer constraint 1

The first row states what is the value that has requirement (HEAVY_LOAD), and the next row what value is necessary for that selection (BRAKES_4).

The constraint works in two ways:

When a user selects the value that has a requirement, then VariCPQ automatically tries to satisfy the requirement. If there is only one way to meet it then that is selected automatically. If there are many ways, then those values that are incompatible with it are disabled on the for.

The automatic selection works in both directions. If the user selects 2-wheel brakes before they select the carrying capacity, then the heavy load options are disabled on the form.

If the user tries to select an option that is disabled, they get a warning dialog that shows the constraint's description to tell what is the problem. The dialog shows the parameters that are involved in the conflict and the user can select which of the choices to reset directly from the form.

brake constraint

The crane requires stabilization

The second rule states that the crane requires flaps to stabilize it. This has the same form as the previous brake constraint:

trailer constraint 2

If the user selects the crane, VariCPQ will try to automatically add the flaps to the configuration. If that is not possible, there will be a conflict.

Rear working lights and toolbox are exclusive options

The rear working lights and the toolbox are attached to the same place in the trailer, so it is not possible to take both of them. This is modeled using an EXCLUDES constraint that states that two values may not be selected at the same time:

trailer constraint 3

The EXCLUDES constraint triggers automatic value disabling in VariCPQ. As soon as the user selects TOOLBOX, the LIGHT selection is disabled and vice versa. If the user tries to select the disabled value, they will a conflict dialog explaining the problem using the description of the constraint.

Wide wheels exclude rear working light

The second EXCLUDES constraint of the model forbids the user selecting both WIDE wheels and the light:

trailer constraint 4

In this case the WIDE selection refers to two values of the TYRES parameter: both 300/55-17 and 400/60-15.5 are marked WIDE so selecting either prevents including the light.

At least one option has to be selected

The final constraint is an example of a business rule that is not technical. The rule states that the user has to select at least one of the options: crane, toolbox or rear work light. This is modeled with an OR constraint:

trailer constraint 5

The OR requires that at least one of the listed values is included in a configuration but there may be more. For example, the user is allowed to select both CRANE and LIGHT if they want.

VariCPQ Excel Template"

Download a workbook template from this link. It is made in Euros (EUR) and English (en).