This is the documentation for older versions of Odoo (formerly OpenERP).

See the new Odoo user documentation.

See the new Odoo technical documentation.

Margin Control

It's important to keep good control of margins in every company. Even if you have a good level of sales it won't guarantee company profitability if margins aren't high enough. OpenERP provides a number of systems for monitoring margins. The main ones are:

  • 每笔销售利润,

  • 每产品利润,

  • 每项目利润,

  • Using price lists.

Margins on sales orders

If you want to check your margins on sales orders you can install the sale_margin module from addons-extra. This will add margins calculated on each order line and on the order total.


An order with the module sale_margin

The margin on each line is defined as the quantity sold multiplied by the sale price for the customer less the cost price of the products. By default, products are managed using standard price in OpenERP (cost price fixed manually and reviewed once per year). You can change that to Average Weighted Price, meaning that the product cost fluctuates with purchases from suppliers. After product receipt you can add fixed costs, such as delivery costs, in the cost of each product.

OpenERP supports a third method of updating the cost price of products using the module product_extended, also in addons-extra at the time of writing. This adds a button to the product form which lets you automatically recalculate the cost price for the selected products. The cost price is calculated from the raw materials and the operations carried out (if the products have been manufactured internally so that you have set their costs).

Margins by product

To track margins by product, install the module product_margin. Once the module is installed you can see the margins by product by using the menu Products ‣ Reporting ‣ Margins by Product.

When you've clicked on the menu, OpenERP asks for an analysis period and the state of invoices. If no period is given, OpenERP will calculate margins on all of the operations without restriction. By default, however, OpenERP proposes a period of the last 12 months for analysis.


  • All invoices, including draft invoices not yet validated,

  • 所有生效或者已支付发票,

  • 仅统计已支付发票.


Screen showing product margins

You then get a margin analysis table. The following fields are given by product for sales:

  • Avg. Unit Price : the average unit sale price,

  • Catalog Price : the list price based on this product,

  • # Invoiced : the number of sold products that have been invoiced,

  • Sales Gap : the difference between the revenue calculated from list price and volume, and the actual sales,

  • Turnover : the actual sales revenue for the product selected,

  • Expected Sales : the number of products sold multiplied by the list price.


Detail of margins for a given product

The following fields are given by product for purchases:

  • Avg. Unit price : 采购平均价,

  • Standard price : 产品成本价,

  • # Invoiced : 采购汇总数量,

  • Purchase gap : the difference between the total actual cost and the standard cost multiplied by the number of units purchased,

  • Total cost : the total cost of purchases for the product under consideration,

  • Normal cost : the number of products sold multiplied by the standard cost price.

The following fields are given by product for margins:

  • Total Margin,

  • Expected Margin,

  • Total Margin in percent,

  • Expected Margin in percent.


To manage margins by project you must install the analytical accounts with management by task. Use of these accounts is described in 辅助核算.

Install the module account_analytic_analysis and all of its dependencies. This module adds a tab on the analytic account form to handle the different margins in an analytic account representing a project or a case, and several new reports on those accounts.


Detail of margins for a case

Start by opening a project's analytic account through the Project Management ‣ Financial Project Management ‣ Analytic Accounts ‣ All Analytic Accounts and selecting one of them. In the new analytic account Analysis summary tab you'll find the following information:

  • The total costs for the analytic account,

  • The total amount of invoiced sales,

  • The number of hours worked,

  • The number of hours remaining to be worked,

  • The remaining income,

  • The theoretical income (hours worked multipled by their sale price),

  • The number of hours invoiced,

  • The real income per hour,

  • The real margin,

  • The theoretical margin taking into account everything yet to be invoiced,

  • The real margin rate in percent,

  • The last invoicing date,

  • The last worked hours,

  • The number of hours remaining to be invoiced,

  • The amount remaining to be invoiced.

For detailed information on the analytic account you can use any of the several reports available in the toolbar to the right.