Prices - The 'Calculate Prices' Function

After you have defined Price Formulae and created a Price List, you will be ready to enter the prices for that Price List. You can do this yourself or, if the Type of the Price List is "Discount", you can use the 'Calculate Prices' Maintenance function. This page describes the 'Calculate Prices' function: please refer here for details about entering prices yourself.

For each Item on a "Discount" Price List, the 'Calculate Prices' function will calculate a new price using the Price Formula specified in the Price List and save it in a record in the Price register.

The first time you run the function for a particular Price List, it will create separate records in the Price register for each Item on the Price List. The next time you run the function, it will recalculate the prices in those Price records. It will not usually create new Price records unless you have added new Items to the Price List. This ensures that there will always only be a single, unique, Price record for each Item/Price List combination, making the use of Price Lists in Orders and Invoices extremely fast.

Each time you change a price that is used as the Base Value by a Price Formula, you should run the 'Calculate Prices' function again to update the Price records. The Base Value of an Item is the figure that is the basis of the price calculation (i.e. the figure to which the Price Formula is applied). This will usually be its Base Price or its Cost Price. You should also run the function regularly if you have Price Lists in foreign Currencies with exchange rates that change frequently.

If you need to prevent an individual price being recalculated when you re-run the 'Calculate Prices' function, select the Do not Recalculate option in the relevant Price record.

The Price register will usually contain one record for each Item/Price List combination. In other words, a particular Item can only be included once in a Price List. However, you can add separate records for specific Customers yourself. The 'Calculate Prices' function will not create or update Price records that you have created for specific Customers. It will only create and update Price records in which the Customer field is blank.

If the Type of a Price List is "Qty Dep Values", its prices will be stored in the Quantity Dependent Prices setting instead of the Price register.

If the Type of a Price List is "BuyBack", its prices will be stored in the Price register and you can use the 'Calculate Prices' Maintenance function to create them. In this case, the function will create records in the Price register in which the sales price is blank and the BuyBack Cost is the Cost Price from the relevant Item record. In each Price record as necessary, enter a sales price if it is different to the Item's Base Price and change the BuyBack Cost to the discounted Cost Price (i.e. to the final cost after Supplier refund). If you re-run the 'Calculate Prices' function for the Price List, it will not update the existing Price records, because to do so will mean that the BuyBack Cost Prices will be lost.

To use the 'Calculate Prices' function, first ensure you are in the Pricing module using the [Switch Module] button in the Navigation Centre and the click (Windows/Mac OS X) or tap (iOS/Android) the [Routines] button, also in the Navigation Centre. Click or tap the [Maintenance] button in the subsequent window, and double-click or tap 'Calculate Prices' in the resulting 'Maintenance' list. The following dialogue box appears:

If you leave the fields blank and press the [Run] button, the function will calculate prices for each Item on each Price List. If the Price register already contains a record representing a particular Item/Price List combination, the function will update the price in that record, providing its Do not Recalculate option isn't selected. If there is no such record, the function will create a new one.

To restrict the calculation process, use the fields as described below before pressing [Run].

Price List
Paste Special    Price List register, Pricing module
If you need to create or update the prices in a particular Price List, enter the code identifying that Price List here. Leave the field blank to calculate prices in every Price List.

Item Group
Paste Special    Item Group register, Sales Ledger
If you need to create or update the prices of Items belonging to a particular Item Group, specify the Item Group here. Prices of these Items will only be calculated if the Item Group is explicitly included in the grid of the Price List that you specify in the field above. If you do not specify a Price List, prices will be recalculated for every Price List in which the Item Group is included.

Paste Special    Item register
Use this field when you need to calculate the prices of a single Item. The Item does not have to be included explicitly in the grid of the specified Price List: its price will also be recalculated if its Item Group is in the grid or if the Item/Item Group field in the grid is blank (i.e. if the Price List includes all Items). If you do not specify a Price List in the field above, prices will be calculated for the Item for every Price List in which it is included.

Paste Special    Suppliers in Contact register
If you enter a Supplier Number here, the Price calculation will be restricted to Items that have a Default Purchase Item in the name of that Supplier.

Add Item Markup to Base
Select this option to add the Markup % (specified on the 'Pricing' card of each Item record) to the Base Value specified in the Price Formula before applying the Price Formula.
When you press the [Run] button, the function may take a few minutes to run, depending on how many prices you are creating or updating.

If you are calculating prices for a Price List that has a Currency, the resulting prices will be in that Currency, converted from Base Values in the home Currency to that specified using the most recent Exchange Rate.

If you need to print a Price List and its prices, use the