In ALCHEMIST cost calculations may take place in the following instances, depending on settings:


1] Running an ALCHEMIST costing report <Stock><Reports><Alchemist><Products>[Costing].

2] Invoking a manual re-cost of a stock item in <Stock><Maintenance><Products>[Alchemist]<Calculate Product Cost>

3] On processing a batch sheet <Alchemist><Production><Goods Finished>

This function depends upon a setting in <Stock><Maintenance><Global Settings / Functions><Alchemist Setup><Goods Finished> “Re-cost Product” (Yes or No) – If set to “Yes” every manufactured item will be re-costed at the time of manufacture (Processing the Goods Finished)

NOTE: BOM items and Kits are not costed when running the processes in 1] to 3], above. They should be re-costed by invoking the report <Stock><Reports><Standard><BOM Items>

The products should be re-costed and updated before re-costing the BOM items


Costing is done by default using the last cost of the materials used in manufacturing the product.

You may, however elect to use a different material cost as the basis for costing. This is achieved by allocating a special Category to the material item that you want to use differently in the calculation.

(See <Stock><Maintenance><Stock Items><Categories>).

This category should be set to use a different cost as the basis for performing the costing of the manufactured product item.

For an explanation of categories see page 5.


For reasons outlined below, one should be very careful when using other costs as the basis for calculating costs of manufactured items.


Formulations costs may be calculated separately from the products by going to <Stock><Reports><Alchemist><Formulations>[Costing]. The user may decide whether to only view the report, or view and update the formula costs. The report shows the currently stored price as well as the calculated price.



In ALCHEMIST and EXACT there are five different costs available for selection:

These are seen in <Stock><Maintenance><Stock Items><Items>(or Products, Raw Materials or Containers)[Purchases / Qty / Cost]

Note that all costs refer to the Stored / Sold in unit

The system manager or a user with a similar level of access may access the costs for editing by pressing the <Access Costs> button

1] Last Cost - the last cost of an item when it was received or manufactured

2] Average Cost - the averaged cost of an item

3] Standard Cost – a “benchmark” figure that can be used to see when other costs have moved significantly

4] Valuation Cost – a user-edited cost that may be used for valuation purposes where, for example there is a depreciation or appreciation in the value of stock

5] Edited Cost – a user-edited cost that may be used, for example in the case of an imported raw material where the normal purchase price must have shipping, duty, etc added to it to reflect its true cost.

A mark-up factor may be associated with an Edited Cost and used to automatically arrive at the Edited Cost by multiplying the Last Cost by the factor. This is to assist in automatic maintenance of Edited Costs.


Please note that only the first two costs, above are fully automatically maintained by the system. The other costs must be carefully maintained by the user, although different costs may be transferred to other costs globally by invoking <Stock><Maintenance><Stock Items><Transfer Values>

It can be seen from the above that costing can be done on any costs of materials, but one must be very clear on what cost one is looking at and for what purpose those costs are to be used.

For example:

Visualise the following scenario:

A customer purchases product from you that contains raw materials that vary in price dramatically according to season or availability. For this reason, you think you should calculate the cost of the product based on the average cost of the raw materials and use this cost as a basis for the price you will sell the product for.

This may work if the customer buys the product regularly throughout the year and purchases the same quantities from you during periods when material costs are high as he does when material costs are low. Otherwise this method of costing based on average costs of raw materials may work to your disadvantage.

To value your stock at average value may not be such a bad idea, but to base your pricing on average costs may backfire on you!

It is better to arrive at an average cost of the finished item based on the latest cost of the raw materials at the time of manufacture. You can then base your selling price on this average cost.

The idea when determining prices is that you should make a fair profit from your customer. The only sure-fire way of doing this is to build up a history of gross profit in monetary terms over a period. This can only be done by using a programme that uses the latest cost of raw materials to calculate the cost of manufactured products at the time of selling the product to a customer. The average cost is then arrived at during the manufacturing process.

In fact, although possible with Alchemist, average costs of raw materials should never be used as the basis for calculating the latest costs of finished products because the average cost of the finished product would then be based on the average of averages which is a mathematical no-no!


Stock may be valued at any of the above costs.

The stock valuation report is found at <Stock><Reports><Standard Items><Stock Value>

Various choices that are self-explanatory may be selected from the reports menu.

Stock valuation is the Quantity on Hand multiplied by the selected cost of the products, depending on the priority set for the costs (In other words, for example, if Edited Cost is set as the highest priority, then Average Cost, the report will use Edited Cost if an edited cost is found in a stock item, otherwise it will use Average Cost.)

This means that the user may selectively decide on those products that need to be included at Edited Cost for valuation purposes.


Negative Values in Stock Valuation

Stock may reflect negative values in the following cases:

1] Materials have been received but the goods received vouchers have not been processed and the materials have either been sold or used in the production process.

2] Goods have been manufactured and then sold, but the batches have not been processed as Goods Finished. (Alchemist)

3] Decanting has occurred without using the decanting facility. See <Stock><Maintenance><Stock Items>Operations<Move / Decant>

4] There is stock leakage in the form of theft or un-processed breakages.

5] Batch sheets have been incorrectly processed


Stock may reflect incorrect positive values in any of the above scenarios or:

1] Goods have been returned to stock without the documentation having been processed.


It therefore follows that all negative values and all variances in a stock valuation need to be investigated and fully explained. This is something the computer cannot control, and it is up to management to ensure that this is done.



Alchemist handles prices in an almost infinitely variable way so that all options are open to the user.

Items that are sold may have an infinite number of prices associated with them.

Individual customers may have their own price lists.

Price lists may be based on any of the selectable costings (Last, Average, Standard, Edited or Valuation)

Price lists may have a mark-up factor associated with them that may be used to automatically calculate new prices by using the factor multiplied by the selected cost to arrive at a selling price.

Prices are maintained in the following areas of ALCHEMIST and EXACT:

<Stock><Maintenance><Global Settings / Functions><Default Prices> (for creating new price lists and allocating these lists to stock items)

<Stock><Maintenance><Global Settings / Functions><Markups> (Where markup factors may be allocated to the different price lists that may have different stock items associated with them)

<Stock><Maintenance><Global Settings / Functions ><Default Prices>[General] (where new price lists may be created and those that have already been created may be modified)

<Stock><Maintenance><Global Settings / Functions ><Default Prices>[Global Functions] (Where price lists may be allocated to stock items)

<Customers><Maintenance><Prices> (where individual customers may be allocated special prices for selected stock items)

<Stock><Maintenance><Stock Items>Operations<Price Changes> (Where future price lists are generated and existing future prices are turned into current prices after their implementation date)

<Customers><Maintenance><Customer> [Balances] (Where a default and alternative price list may be allocated (over-ridden by a customer-specific price) a selection between VAT exclusive prices and inclusive prices may be made and special invoice, credit note and delivery note templates to allow for customer-specific requirements may be allocated).


Costs that are used as the basis for the calculation of new prices as well as existing prices may be transferred to another cost or price (Selectable by product or product range) by going to <Stock><Maintenance><Stock Items>Operations<Transfer Values>.



For the purpose of analysing business performance the value of stock is of vital importance and therefore the following factors need to be considered:

All discrepancies need to be investigated and corrected, as seen above.

Stock value must be considered in conjunction with creditors’ transactions. For example, it may be acceptable to reflect a negative value for a stock item if there is a concomitant understatement of the amount of money due to the supplier.

The report showing the value of all Goods Received where the stock has been updated but the suppliers invoices have not been processed needs to be looked at,   ( <Customers><Reports><Invoice><Details>(Select DN [Delivery Notes] only) )as well as the report on all customers delivery notes generated where the invoice has not been produced.


Some accounting packages, notably Pastel, automatically transfer the values of any stock transactions directly to the general ledger.

We are of the opinion that this is an extremely dangerous and undesirable practice that has been implemented in order to provide more work for your auditors so that they can hang about your premises for weeks on end knocking up huge accounts!

Because of the integration of stock with the General Ledger, every time there a discrepancy in the stock a journal has to be passed in the ledger to correct this. Journal entries are what auditors make their living out of, and the fewer that appear in your ledger, the less they will be able to charge for.

If there is a stock imbalance, it should be corrected in the stock, not in your ledger!

The only analysis of stock that the auditors can do is to do a spot check on quantities on hand. This they will do in any event.


The same reasoning applies where you want to analyse gross profit margins on individual customers.

Some accountants are tempted to do this analysis through the General Ledger by setting up special sales accounts and stock accounts for individual customers in the Ledger.

As far as we are concerned, this analysis should take place in the customer’s records. After all, ALCHEMIST knows what an item cost at the time of selling it to the customer, and it knows how much the customer paid for it, therefore ALCHEMIST can calculate the gross margins that you make on an individual customer whatever you sell the customer without clogging up the ledger with numerous transactions that your auditor will gleefully charge you for examining.


In ALCHEMIST, when you wish to know your profit or loss situation, a stock valuation report is produced for the date upon which you wish to know the situation and this figure, once verified, is journalled into the relevant general ledger account.

One entry: No clogging the ledger with unnecessary transactions: No audit fee!


Gross Profits

Because ALCHEMIST and EXACT are fully integrated they “know” what a product costs to manufacture at the time of selling the product. It is therefore a simple matter to calculate the gross profit that you make from an individual customer or a group of customers over any period of time, irrespective of whether the customer has a customer-specific range of products.

These reports are obtained from <Customer><Reports>Stock Item Sales<By Customer (Det)>

If there has been an error in processing the cost of stock items during a certain period this period can be left out of the report.


Recommended modus operandi


We recommend that you decide how you want to cost the different items in your stock and how you want to value your stock (you can see from the above that ALCHEMIST and EXACT offer you an almost infinite range of combinations and permutations) , then make notes on how you arrive at these results and use these notes as your own “Operations Manual” That way you will be comparing apples with apples each month and will not catch yourself out.



Categories are used to generate and order reports in the Stock, Customers and Suppliers modules of EXACT.

They are also used to perform certain global functions on a set of data, for example, price updates.


Categories are extremely powerful, but because there are 8 positions available in the category code and "wild-cards" may be used, they can also become very complex. Considerable thought needs to go into the setting up of an intelligent category system.

It is much better to set the categories up properly right from the beginning than it is to try and sort out a mess later!


The easiest way to explain categories is to give some simple examples:


If, for example you have a shop selling paint and you sell to cash customers, house-owners, painting contractors, industrial and commercial businesses and farmers, you may want to categorise them accordingly so that you could obtain reports to see where your greatest sales or profits are generated. You may also want to send different mailings to these people to promote special offers, or even to distribute different price lists to them.

So, you may decide to give them the categories CUSTC (this would be specific only to the cash acount), CUSTH (house-owners), CUSTP (painting contractors), CUSTI AND CUSTF respectively.

You may want to further refine them in terms of, for example, whether they have an account or pay cash, thus having CUSTHA, CUSTHC, CUSTPA, CUSTPC, and so on. (A for Account, C for Cash)

You could then print a sales report for all sales to the cash account by asking for a report with the category CUSTC, or you could get the same report for all Painting Contractors by specifying the category CUSTP* (using the * as a "wildcard") , or a report for all Painting Contractors who have an account (CUSTPA)



It is recommended that most customers stick to the above format for customers,  stock and suppliers because it is a simple use of categories, however, it is possible to obtain much more depth in reporting functions by employing the following tactics. Be warned however! The following example, if followed to a greater extent than the example, will get very complicated.


Say you have a hardware store that sells Tools, Paints, Electrical Appliances and Cleaners.

You may decide that you want to give these the broad categories T, P, E and C respectively.


You may then decide to further divide the Tools (T) category into Power Tools (P), Garden Tools (G), Spanners (S) and Woodwork Tools (W), so you use the second position in the category code for this and arrive at the codes TP, TG, TS and TW.


Now you decide that you want to break down Power Tools into Drills, Sanders and Grinders, so you get TPD, TPS and TPG.

However, in the Woodworking Tools section, you also have some hand-operated sanding devices, so you may also have a TWS.

These codes are allocated to the stock item(s) that they describe.


Now, if you decide you want a report on all tools in your shop, all you need to do is ask for a report with the category T* (The * being the "wildcard" for anything in any position after the T).

If you want a report on all Tools that are Sanders (both power and hand-held) , you could ask for T?S (The ? is a "wildcard" for a single position).

If you only want the Power-tool Sanders, ask for the category TPS


Note that in ALCHEMIST groups may be used in a similar way to categories, but three groups (PROD, RAW and PACK) are also essential to the correct running of ALCHEMIST. It is therefore better to alter categories, but not to change groups.

A printer-friendly version of this document may be obtained from m/media/alchcost.pdf