← Back to all posts Implementation & approach

Cost price calculation: direct and indirect costs, and how to spread them (with calculator)

A cost price is direct costs plus an allocated share of the indirect costs. The art is in that allocation: how do you spread overhead fairly across your products? This pillar explains the markup method, the cost-centre method and ABC, plus absorption versus variable costing, and how to capture it in Odoo. With an interactive calculator that builds up your cost price per unit.

Also in: Nederlands Deutsch

Short answer: a cost price is direct costs plus an allocated share of the indirect costs. The direct costs (material, direct hours) are the easy part: you assign those straight away. The art is in the indirect costs, the overhead that belongs to the whole company and not to a specific product: those you have to spread using an allocation base. How you do that determines whether your cost price is right. Below are the three methods for spreading, the difference between absorption and variable costing, a calculator that builds up your cost price per unit, and how to capture it in Odoo.

Direct and indirect costs

Everything starts with this distinction.

  • Direct costs can be assigned straight to a product or order. The steel in a frame, the fitter’s hours on a job, the machine hours on a production run. You can point and say: that cost belongs to this product.
  • Indirect costs (overhead) belong to the company as a whole: the rent of the hall, the bookkeeper, the manager, the software. They are needed in order to produce, but you cannot pin them to a single product.

The direct costs are therefore no problem. The entire theory of cost price calculation is about that second category: how do you allocate a fair share of the indirect costs to each product?

Spreading indirect costs: three methods

There are three classic ways to spread overhead, from coarse to fine.

1. The markup method

You apply a markup percentage to a base. For example: all indirect costs together are 60% of the direct costs, so you add a 60% markup to every product. The base can be the total direct costs, direct labour only, or an amount per direct hour.

  • Advantage: simple, fast, fine for a company with one type of work.
  • Disadvantage: coarse. A product with a lot of material but few overhead-causing operations gets too much allocated (the “primitive markup method”). The refined markup method therefore uses several markups on different bases.

2. The cost-centre method

You first distribute the overhead across cost centres (departments, machines) using an allocation base, and calculate a rate per cost centre (for example a machine-hour rate). A product then absorbs overhead towards the cost centres it actually uses.

  • Advantage: much fairer. A product that sits on an expensive machine for a long time also carries more of that machine.
  • Disadvantage: more laborious; you have to maintain the cost centres and allocation bases. This is the method you see back in a real manufacturing accounting, with absorption accounts per cost centre.

3. Activity-based costing (ABC)

You allocate overhead per activity (processing a purchase order, a changeover, an inspection), each with its own cost driver. The sharpest, but also the heaviest to maintain. Worthwhile if your overhead is large and unevenly distributed.

The common thread: the more finely you spread, the more accurate the cost price, but the more administration it costs. The right method is the coarsest one that still gives a fair picture for your mix. For most SME production, a good cost-centre method is the sweet spot.

Calculate your cost price

Choose your allocation base and see how the indirect costs land per unit, how the absorption cost price builds up and which selling price goes with it given your margin.

Direct costs

Directly attributable to the product.

Spread indirect costs

Allocate overhead via an allocation base.

%
Share of indirect costs allocated per unit.
%
Direct costs € 0
Indirect (allocated) € 0
Full cost price € 0
Suggested sales price € 0

Build-up of the sales price:

  • Material € 0
  • Direct labour € 0
  • Indirect € 0
  • Profit € 0

Illustrative model (markup method). The cost-centre method and ABC spread the same overhead via a finer base; the principle - direct costs plus an allocated share of indirect costs - stays the same.

The stacked bar makes immediately visible what surprises many companies: for service and make-to-order work the indirect slice is often bigger than expected. Whoever underestimates their overhead calculates structurally too keenly and only discovers it at the job costing.

Absorption versus variable costing

Another choice you have to make: do you allocate all costs, or only the variable ones?

  • Absorption costing: all costs, including the fixed indirect costs, are allocated. This is the usual basis for your inventory valuation and your selling price, and what the calculator above shows.
  • Variable costing (direct costing): only the variable costs are allocated; the fixed costs you take separately as period costs. Strong for short-term decisions: for an extra order where your fixed costs are already covered anyway, only whether the revenue exceeds the variable costs counts (the contribution margin).

Both are correct, for different questions. For “what may this product structurally cost” you use absorption; for “do I accept this extra job at a lower price” you look at the contribution margin.

From cost price to selling price

The cost price is your floor, not your price. On top comes your profit markup. Watch the difference between a markup on the cost price (margin as a percentage of the cost price) and a margin in the selling price (percentage of the selling price): a 25% markup on a cost price of 100 gives 125, but that is a margin of 20% of the selling price. The calculator uses the markup on the cost price.

Calculating the cost price in Odoo

A cost price that lives in a spreadsheet is out of date a month later. In Odoo the cost price lives in your system:

  • Cost price per product, as standard price, FIFO or moving average.
  • Cost price from the bill of materials: for a manufactured product Odoo calculates the cost price from the components and the operations (with work-centre rates for your machine hours, the cost-centre idea).
  • Landed costs: freight, import duties and insurance you allocate to the inventory value, so that your cost price reflects the real purchasing chain.
  • Overhead you allocate via work-centre rates or a markup, exactly as in the tool.

The beauty: that calculated cost price is immediately your estimate. If you then register the actual hours and material on the order, the job costing rolls out by itself, and you see whether your markups were right. That closes the circle: calculate the cost price, quote with it, and check it afterwards.

Frequently asked questions

How do you calculate the cost price of a product? Direct costs (material + direct hours) plus an allocated share of the indirect costs (overhead) = the absorption cost price per unit. On top comes your profit margin.

What is the difference between direct and indirect costs? Direct costs you assign straight to a product (material, hours); indirect costs (premises, management, systems) belong to the whole company and you spread them using an allocation base.

How do you allocate indirect costs to a product? Via the markup method (percentage on a base), the cost-centre method (rate per department or machine) or ABC (per activity). Spreading more finely gives a more accurate but more laborious cost price.

What is the difference between absorption and variable costing? Absorption allocates all costs (basis for inventory and selling price); variable allocates only variable costs (strong for short-term decisions via the contribution margin).

Can you calculate the cost price in Odoo? Yes, via cost price per product, cost price from the bill of materials, landed costs and overhead via work-centre rates. The calculated cost price is immediately your estimate.


Want a cost price that is right and keeps itself up to date? Book a free Odoo scan - then we go through your cost structure, allocation bases and calculation with you and show how cost price, quote and job costing come together in one system.


Read more: Job costing: from estimate to actual cost price · Manufacturing accounting in Odoo · Odoo for manufacturing companies · Software for construction companies · What does an Odoo implementation cost? · The TARGET method

Frequently asked questions

How do you calculate the cost price of a product?

Add the direct costs (material and direct labour or machine hours you can assign straight to the product) to an allocated share of the indirect costs (overhead you cannot assign directly). The result is the absorption cost price per unit. On top of that comes your profit margin to arrive at a selling price.

What is the difference between direct and indirect costs?

Direct costs can be assigned straight to a product or order: the material in the product and the hours spent on it. Indirect costs (overhead) belong to the company as a whole and not to a specific product: premises, management, general systems. You have to spread those across your products using an allocation base.

How do you allocate indirect costs to a product?

Using an allocation base. The markup method applies a percentage of overhead to a base such as direct costs or direct labour. The cost-centre method first distributes the overhead across departments or machines (cost centres) and calculates a rate per cost centre, for example per machine hour. Activity-based costing (ABC) allocates per activity. Spreading more finely gives a more accurate but more laborious cost price.

What is the difference between absorption costing and variable costing?

Absorption costing allocates all costs, including the fixed indirect costs. Variable (direct) costing allocates only the variable costs; the fixed costs are taken separately as period costs. Absorption is standard for inventory valuation and the selling price; variable is stronger for short-term decisions such as accepting an extra order.

Can you calculate the cost price in Odoo?

Yes. Odoo keeps a cost price per product (standard price, FIFO or average), calculates the cost price of a manufactured product from the bill of materials and operations, and can include extra costs such as freight and import duties in the inventory value via landed costs. You allocate overhead via work-centre rates or a markup. That way the calculated cost price is immediately your estimate for the job costing.

Recognize this from your own setup?

A 30-min scan turns hunches into a concrete view, what stays standard Odoo, what becomes custom, what doesn’t need code at all.

Get in touch ← Back to blog