# Inventory turnover

**URL:** https://discuss.tryton.org/t/inventory-turnover/8790
**Category:** Feature
**Tags:** stock
**Created:** [August 22, 2025, 4:12pm UTC](https://discuss.tryton.org/t/inventory-turnover/8790 "2025-08-22T16:12:44Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [August 22, 2025, 4:12pm UTC](https://discuss.tryton.org/t/inventory-turnover/8790/1 "2025-08-22T16:12:45Z")

</div>

## Rational

In order to correctly adjust the order point, users need to know what is the inventory turnover of each goods. If it is too low, company may want to lower the quantity or even return extra stock level to the supplier.

## Proposal

A new report is added to the “Inventory & Stock” which display for each goods the quantity sold (the quantity moved out to customers minus the quantity returned by customers), the average stock level and the turnover (as quantity sold / average stock level) over a period defined in the context and for a warehouse.

## Implementation

- [Add stock inventory reporting (!2588) · Merge requests · Tryton / Tryton · GitLab](https://foss.heptapod.net/tryton/tryton/-/merge_requests/2588)

---

<div class="post-metadata">

### Author: ![pokoli](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/pokoli/32/22_2.png) [@pokoli](https://discuss.tryton.org/u/pokoli)
#### Post date: [August 25, 2025, 6:55am UTC](https://discuss.tryton.org/t/inventory-turnover/8790/2 "2025-08-25T06:55:41Z")

</div>

I’m wondering if the quantity is enought to have proper reporting.  
Having 1.000 units of some product valued as 0.01€ its no more important than having 50 units of a product valued at 100€.

For me it make sense to include for each quantity metric include also the goods value.

---

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [August 25, 2025, 7:18am UTC](https://discuss.tryton.org/t/inventory-turnover/8790/3 "2025-08-25T07:18:42Z")

</div>

For me this is making too much assumption about the storage cost.  
We do not know what are the criteria that users will use to evaluate the turnover. They may even vary per product and/or warehouse.

---

<div class="post-metadata">

### Author: ![pokoli](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/pokoli/32/22_2.png) [@pokoli](https://discuss.tryton.org/u/pokoli)
#### Post date: [August 25, 2025, 7:39am UTC](https://discuss.tryton.org/t/inventory-turnover/8790/4 "2025-08-25T07:39:45Z")

</div>

Sorry but I did not make any assumption. Just mentioned that the value of the product may have an impact in the inventory turnover as quantities can not just represent the value of a stock.

> [@ced](#):
>
> We do not know what are the criteria that users will use to evaluate the turnover.

Inventory turnover is a criteria that is used to compare the performance of similar companies and can be computed using accounting values. See:

> **[Inventory Turnover Ratio: What It Is, How It Works, and Formula](https://www.investopedia.com/terms/i/inventoryturnover.asp)**
>
> Inventory turnover is a financial ratio that measures a company’s efficiency in managing its stock of goods.

> [@ced](#):
>
> They may even vary per product and/or warehouse.

Do not understand what you mean with this sentence. No mather how if it varies the product always have a valuation.

---

<div class="post-metadata">

### Author: ![albert](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/albert/32/21_2.png) [@albert](https://discuss.tryton.org/u/albert)
#### Post date: [August 25, 2025, 8:47am UTC](https://discuss.tryton.org/t/inventory-turnover/8790/5 "2025-08-25T08:47:02Z")

</div>

I agree with @pokoli that the value of the stock is very important.

Usually much more important that the quantity.

---

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [August 25, 2025, 3:58pm UTC](https://discuss.tryton.org/t/inventory-turnover/8790/6 "2025-08-25T15:58:27Z")

</div>

I see no explanation why the cost of the goods is important for this topic.

The inventory turnover provides information about how the stock buffer behaves in the warehouse. Optimizing this buffers is related to the storage cost and not the product cost.

But of course when adapting the order point quantities, users must be careful about the cost of the goods but it is another matter.

---

<div class="post-metadata">

### Author: ![pokoli](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/pokoli/32/22_2.png) [@pokoli](https://discuss.tryton.org/u/pokoli)
#### Post date: [August 26, 2025, 6:47am UTC](https://discuss.tryton.org/t/inventory-turnover/8790/7 "2025-08-26T06:47:19Z")

</div>

> [@ced](#):
>
> I see no explanation why the cost of the goods is important for this topic

I already include an explanation:

> [@pokoli](#):
>
> Having 1.000 units of some product valued as 0.01€ its no more important than having 50 units of a product valued at 100€.

The quantity may give the feeling that a product has a lot of impact on the turnover while it is not really so much important because its value of the goods is small compared to its quantity moved.

> [@ced](#):
>
> Optimizing this buffers is related to the storage cost and not the product cost.

For me you are just assuming one cost may be more relevant than the other which may not be true for the company. The product cost has a direct impact on the company cash flow and may produce the need to ask for credits.

---

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [August 27, 2025, 7:56am UTC](https://discuss.tryton.org/t/inventory-turnover/8790/8 "2025-08-27T07:56:11Z")

</div>

Here is a first draft [Add stock inventory reporting (!2588) · Merge requests · Tryton / Tryton · GitLab](https://foss.heptapod.net/tryton/tryton/-/merge_requests/2588)  
I found I have a better way and faster with this design to calculate the inventory history. Thus I think it will replace the `*product_quantities_warehouse*` models once I define a simple `stock.reporting.inventory` and `stock.reporting.inventory.move` models.

---

<div class="post-metadata">

### Author: ![albert](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/albert/32/21_2.png) [@albert](https://discuss.tryton.org/u/albert)
#### Post date: [August 28, 2025, 11:08am UTC](https://discuss.tryton.org/t/inventory-turnover/8790/9 "2025-08-28T11:08:03Z")

</div>

> [@pokoli](#):
>
> The quantity may give the feeling that a product has a lot of impact on the turnover while it is not really so much important because its value of the goods is small compared to its quantity moved.

I think this is essential.

When a company looks at what is the size of an issue with the products in their warehouse (do they have too much stock?), they always look at the value first, not the number of units.

---

<div class="post-metadata">

### Author: ![acaubet](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/acaubet/32/1493_2.png) [@acaubet](https://discuss.tryton.org/u/acaubet)
#### Post date: [August 28, 2025, 1:04pm UTC](https://discuss.tryton.org/t/inventory-turnover/8790/10 "2025-08-28T13:04:12Z")

</div>

For me, the most important criteria are: stock valuation, units stored, volume stored.  
I agree with others units and valuation arguments. But as nobody pointed out volume criteria, I think it’s important to know what is making your warehouse space full in relation to units or valuation.

I want to also point out a quick demo using TreeMap visualization over the same data on the 3 main with related products so you can see in a quick view the other 2 criteria. I think this type of view is important for this scenario.

  
[Source](https://gist.github.com/zipus/e83470473bbd94a44d4b84d2d0f0764c)

---

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [September 3, 2025, 5:13pm UTC](https://discuss.tryton.org/t/inventory-turnover/8790/11 "2025-09-03T17:13:24Z")

</div>

The merge request contains now the inventory turnover report but also an inventory, inventory moves and inventory daily reports.  
I tested on a database with ~30k stock moves and 2k products, the turnover report for 1 year is calculated in about 50ms (on my laptop). The query plan is pretty good and can use many indexes.

I plan to make a second commit that will remove all the `*QuantitiesByWarehouse*` models and include the cost value to the `Inventory` report.

---

<div class="post-metadata">

### Author: ![pokoli](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/pokoli/32/22_2.png) [@pokoli](https://discuss.tryton.org/u/pokoli)
#### Post date: [September 4, 2025, 6:57am UTC](https://discuss.tryton.org/t/inventory-turnover/8790/12 "2025-09-04T06:57:31Z")

</div>

> [@ced](#):
>
> I plan to make a second commit that will remove all the `*QuantitiesByWarehouse*` models

I guess you propose to deprecate them and replace its model by the new daily model right?  
Do not forget to update the `stock_quantity_issue` which uses such models to generate the issues.

---

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [December 23, 2025, 2:37pm UTC](https://discuss.tryton.org/t/inventory-turnover/8790/13 "2025-12-23T14:37:17Z")

</div>


