Skip to content
English
  • There are no suggestions because the search field is empty.

Writing Pricing Rules for Price Files

Explore how to write pricing rules for timber,  glass and ironmongery.

 

Key Points: Writing Pricing Rules for Price Files

1. Rule editors knowledge
This guide assumes some prior knowledge of rule editors. For basic guidance on rule editors, including how to write conditions, see working with rule editors.

2. Cost Plus vs Price List
There are two basic approaches to price files, Cost Plus and Price List.

Cost Plus takes a granular approach to calculate the cost of each window based on material costs, production labour, and installation, then adds a markup to that cost to work out the price.  Cost Plus pulls values from other parts of the system, such as, production hours from the estimated labour time page and ironmongery costs from the Part List, then feeds them into the calculation.

Price List uses a pre-determined list of different window configurations and sizes with a set cost or price for each. It tends to require more rules, and more complex rules, than Cost Plus. The most common approach is to price windows according to overall frame area. Separate pricing groups, for example, sliding sashes, casements, and doors, can be broken down into smaller groups, for example, single, double sashes. This is normally done on the frame loop, using the area variable. Additional rules will need to be added for different material types, The Price List approach may still calculate certain additional costs using a Cost Plus approach, such as glass and ironmongery cost. However, the base cost of each item will be a fixed cost, based on item type and size.

Cost Plus is more precise, and allows for prices to be easily tweaked by adjusting a particular detail such as a material cost. 

Price List is easy to grasp and can be set up based on an existing price catalogue or spreadsheet, and it keeps all pricing information in the same place.

 

3. Cost Plus - timber costs
The price file editor has built-in variables rules for calculating timber volume based on the drawing. These figures are calculated in cubic decimetres; to convert to cubic metres, simply divide by 1000.

4. Frame timber volume
Can be calculated on the item-level loop using the variables frame_excl_cill_volume and cill_volume. These variables calculate the total timber volume regardless of material. There are also corresponding volumes for each type of timber, for example, accoya_frame_excl_cill_volume and accoya_cill_volume.

5. Sash timber volume
Can be calculated on the sash, sliding sash, casement sash, or door leaf loops. On each loop there is the volume variable which includes all materials, and the material-specific variables such as accoya_volume.

For each material it's recommended to create a custom variable for the timber cost per cubic metre.


Create a rule, such as the rule in the given example below,  multiplying the timber volume by the cost per cubic metre.


Note:  Markup in the given example is a custom variable, allowing the markup to be easily adjusted across all rules.

6. Cost Plus - glass costs
There are a few different ways to calculate glass costs.

a. Add square metre cost - For each type of glass in the Part List 


b. Glass unit loop - Pulling values using the cost variable
The glass unit loop is single_pane_costinner_pane_costmiddle_pane_costouter_pane_cost. This approach requires a minimal number of glass pricing rules. The given example shows a rule covering all single glazing.


c. All double glazing


d. Variable actual area

The variable actual_area calculates the area of the glass unit in square metres to two decimal places.


e. Rounded area

rounded_area does the same as variable actual area. but rounds anything less than 0.3m2 up to 0.3m2, allowing a minimum glass charge to be built in to the pricing rules.

It is recommended to use separate glass parts in the Part List for toughened glass, rather than can be toughened tick box. This way a different cost value can be assigned for toughened glass without needing to write complex pricing rules using the toughened glass variables.


f. Part List approach
Simple to use, with flexibility for tailoring prices on different factors, but does require glass costs to be kept up to date in the Part List. 

Alternatively, write separate pricing rules for each type of glass or combination of glass types, and define the cost within the price file itself.

If there are many glass parts in the system, it will be easier to group them using custom variables, with each group being priced the same. In the given example, a standard_glass variable includes several glass parts from the Part List.

Next, write pricing rules using the in_list() function.

This gives more flexibility as double glazing will not necessarily be double the single glazing price, per square metre:


Conditions can be tailored further, to price differently for different ranges, for example, types of windows. However, this will necessitate more rules.


7. Cost Plus - ironmongery/hardware costs
Cost Plus, based on the cost per part in the Part List, is the easiest way to price ironmongery. One, simple, rule on the ironmongery part loop is sufficient, as shown in the given example.

Cost is the cost of the part in the Part List, and qty is the number of units assigned. Sash weights do not count as ironmongery, so will require a separate rule, as shown in the given example.

The weight variable on the sliding sash loop returns sash weight in lbs, for kilograms, use weight_in_kg. In the given example lead_per_lb is a custom variable which defines the cost of lead weights per lb.


7. Production labour costs
If production labour rules have been estimated in the estimated labour time editor, this information can be pulled into the price file, using a few variables.

There will always be a variable on the item-level loop called production_labour_time, which pulls the total time calculated by the production labour rules for a particular item.

There will also be a separate production labour variable for each production process, allowing different labour costs to be set for each process. The hourly rate for a process can be defined using a custom variable, as shown in the given example.

Next, write a rule to multiply the production time for that process (in this example joinery) by the hourly rate that has been set.

 

8. Installation labour costs
If rules have been configured for calculating installation labour time in the fitting units/installation labour editor, this information can be pulled through to the price file.

As with production labour, there will be an overall variable for total installation_labour_time, plus individual variables for each of the groups in the fitting units editor.

The hourly rate for installation can be defined either directly in the rule or, as shown in the given example using a custom variable.