[ADD] inventory: addition logistics dashboards kpis

task-5122922

closes odoo/documentation#15256

X-original-commit: d4ac1b0c05
Signed-off-by: Siobhan McGonigle (mcsi) <mcsi@odoo.com>
This commit is contained in:
mcsi-odoo
2025-09-29 13:54:57 +00:00
parent bedf2f7672
commit d1095d95a9
13 changed files with 357 additions and 40 deletions

View File

@@ -12,3 +12,4 @@ Reporting
reporting/locations
reporting/moves_history
reporting/aging
reporting/dashboards

View File

@@ -1,5 +1,5 @@
=========================
Stock valuation dashboard
Stock valuation reporting
=========================
.. |SVLs| replace:: :abbr:`SVLs (stock valuation layers)`
@@ -26,19 +26,19 @@ methods used in Odoo: *standard price*, *average cost* (AVCO), and *first in, fi
accounting. It is important to know that the valuation method chosen for a product impacts the
calculation of several fields in the stock valuation reports.
Open the dashboard
==================
Open the reporting screen
=========================
Odoo's *Stock Valuation* dashboard displays the financial value of all tracked inventory, according
to each product's stock valuation method. This report can provide insights into potential issues in
the supply chain, such as sunken purchase costs or delays in profitability. To access the dashboard,
go to :menuselection:`Inventory app --> Reporting --> Valuation`.
Odoo's *Stock Valuation* reporting screen displays the financial value of all tracked inventory,
according to each product's stock valuation method. This can provide insights into potential issues
in the supply chain, such as sunken purchase costs or delays in profitability. To access stock
valuation reporting, go to :menuselection:`Inventory app --> Reporting --> Valuation`.
.. important::
The :menuselection:`Reporting` menu in **Inventory** is only accessible to users with
:doc:`admin access <../../../../general/users/access_rights>`.
This dashboard has three different views, or inventory reports — :ref:`list view
This reporting screen has three different views, or inventory reports — :ref:`list view
<inventory/warehouses_storage/valuation-report>` (i.e. the default stock valuation report),
:ref:`pivot view <inventory/warehouses_storage/aging-report>` (i.e. the stock aging report), and
:ref:`graph view <inventory/warehouses_storage/graph-view>`. Each view can be customized with
@@ -53,9 +53,9 @@ the top of the report, or click the drop-down arrow next to it. For example, sel
List view: stock valuation
==========================
By default, the :guilabel:`Stock Valuation` dashboard displays in *list view*, represented by the
:icon:`oi-view-list` :guilabel:`(list)` icon. This report shows a detailed record of stock movements
and their valuations.
By default, the :guilabel:`Stock Valuation` reporting screen displays in *list view*, represented by
the :icon:`oi-view-list` :guilabel:`(list)` icon. This report shows a detailed record of stock
movements and their valuations.
Configure
---------
@@ -128,17 +128,17 @@ automatically posted to reflect the change in pricing for goods that remain in s
be negative to "remove" the old pricing, and the second entry will be positive to record the new
pricing. These entries are connected to journal entries in Odoo's **Accounting** app.
Below is an example of what the :guilabel:`Stock Valuation` table shows when a few stock moves have
Below is an example of what the :guilabel:`Stock Valuation` report shows when a few stock moves have
occurred for a product using standard price accounting.
.. image:: aging/before-val-method-change.png
:alt: Stock valuation table in standard price accounting.
:alt: Stock valuation report in standard price accounting.
Conversely, the following image depicts what the *Stock Valuation* Report table might look like
Conversely, the following image depicts what the *Stock Valuation* report might look like
after a product has switched from standard price to :abbr:`FIFO (First In, First Out)` accounting.
.. image:: aging/after-val-method-change.png
:alt: Stock valuation table after switching from standard price to FIFO accounting.
:alt: Stock valuation report after switching from standard price to FIFO accounting.
.. example::
The :guilabel:`Remaining Value` and :guilabel:`Remaining Quantity` fields are derived from what
@@ -188,7 +188,7 @@ will show the :guilabel:`Quantity` and :guilabel:`Total Value` of each stock mov
Pivot view: stock aging
=======================
From the :guilabel:`Stock Valuation` dashboard, access pivot view by clicking the
From the :guilabel:`Stock Valuation` reporting screen, access pivot view by clicking the
:icon:`oi-view-pivot` :guilabel:`(pivot)` icon. This view is essentially a *stock aging report*, and
it shows the on-hand quantity and value of inventory by purchase date, which can help monitor
products with expiration dates.

View File

@@ -0,0 +1,221 @@
====================
Inventory dashboards
====================
The following dashboards, available via the :doc:`Odoo Dashboards
<../../../../productivity/dashboards>` app, allow you to monitor and analyze core metrics related to
warehouse operations and management, as well as stock management:
- :ref:`Warehouse Daily Operations dashboard
<inventory/dashboards/warehouse-daily-operations-dashboard>`: monitors task completion and
scheduled activities
- :ref:`Operation analysis dashboard
<inventory/dashboards/operation-analysis-dashboard>`: measures efficiency KPIs
- :ref:`Warehouse Metrics dashboard <inventory/dashboards/warehouse-metrics-dashboard>`: assesses
stock value and quantity
To access these dashboards, go to the **Dashboards** app, then, in the left panel, navigate to the
:guilabel:`Logistics` section and click the name of the relevant dashboard. The dashboard opens in
the main view.
.. note::
The :ref:`rights to access <dashboards/access-and-sharing>` Odoo dashboards are based on user
groups, and are managed within the **Dashboards** app. By default, the :guilabel:`Operation
analysis` and :guilabel:`Warehouse Metrics` dashboards are only visible to, and can only be
accessed by, users with admin access to the **Inventory** app.
.. seealso::
- :ref:`Using Odoo dashboards <dashboards/use-dashboards>`
- :ref:`Customizing Odoo dashboards <build_and_customize_dashboards/customize>`
.. _inventory/dashboards/warehouse-daily-operations-dashboard:
Warehouse Daily Operations dashboard
====================================
The :guilabel:`Warehouse Daily Operations dashboard` provides a real-time view of critical
outstanding tasks across receipts, deliveries, and internal transfers, allowing warehouse managers
to prioritize work and prevent bottlenecks. It immediately identifies overdue operations, as well as
transfers that have not yet been assigned to an employee. It also forecasts scheduled activity for
the next 7 days.
.. image:: dashboards/warehouse-daily-operations.png
:alt: Warehouse Daily Operations dashboard
Navigate the dashboard
----------------------
Three cards at the top of the dashboard show the following information:
- :guilabel:`Late deliveries`: indicates the number of open deliveries with a past scheduled date
and/or past deadline date.
.. note::
If delivery is configured using a multi-step route with push logic, the delivery is not
generated until the previous operation is confirmed.
- :guilabel:`Late receptions`: indicates the number of open receipts with a past scheduled date
and/or past deadline date.
- :guilabel:`Late internal transfers`: indicates the number of open internal transfers with a past
scheduled date and/or past deadline date.
The following charts and tables are available:
- :guilabel:`Transfers to be assigned`: shows open transfers that have no responsible user assigned.
.. tip::
For a more precise analysis, filter the dashboard by operation type via the search bar.
- :guilabel:`Open transfers to date`: shows open transfers by operation, by date.
.. tip::
By default, the :guilabel:`Transfers to be assigned` and :guilabel:`Open transfers to date`
charts are shown by day. To see data by :guilabel:`Weeks`, :guilabel:`Months`, or
:guilabel:`Weeks`, hover over the chart and click the dropdown in the top-right corner.
- :guilabel:`Open receptions to date`: shows the number of open receipts per responsible user.
- :guilabel:`Open late receipts`: shows the ten oldest open receipts with a past scheduled date
and/or deadline date, in descending order.
- :guilabel:`Open internal transfers to date`: shows the number of open internal transfers per
responsible user.
- :guilabel:`Open late internal transfers`: shows the ten oldest open internal transfers with a past
scheduled date and/or deadline date, in descending order.
- :guilabel:`Open deliveries to date`: shows the number of open deliveries per responsible user.
- :guilabel:`Open late deliveries`: shows the ten oldest open deliveries with a past scheduled date
and/or deadline date, in descending order.
- :guilabel:`Receptions next 7 days`: shows the number of open receipts for the next seven days.
- :guilabel:`Deliveries next 7 days`: shows the number of open deliveries for the next seven days.
.. _inventory/dashboards/operation-analysis-dashboard:
Operation analysis dashboard
============================
The :guilabel:`Operation analysis` dashboard focuses on KPIs related to the efficiency and accuracy
of stock movements. It helps identify areas for process improvement by showing metrics like the
average time transfers are overdue, the average time between creation and validation of transfers,
and the percentage of on-time transfers. It also provides insights into delivery accuracy by
showing the percentage of products actually delivered versus ordered.
.. image:: dashboards/operation-analysis.png
:alt: Operation analysis dashboard
.. tip::
- By default, this dashboard shows data for :guilabel:`All time`. To show data for a specific
period, click :icon:`fa-calendar` :guilabel:`All time` above the dashboard and select or define
the appropriate period.
- For a more precise analysis, filter the dashboard by operation type via the search bar.
Navigate the dashboard
----------------------
Four cards at the top of the dashboard show the following information:
- :guilabel:`Avg Delay`: indicates the average number of days, in decimal format, that completed
deliveries were overdue (i.e., the date the delivery status changed to :guilabel:`Done` minus the
scheduled date for the delivery) in the selected period.
.. note::
Deliveries that are completed earlier than their scheduled date contribute a negative delay
value to the calculation of the KPI.
- :guilabel:`Avg Lead Time`: indicates the average number of days, in decimal format, between the
creation and the validation of transfers.
- :guilabel:`Fill rate`: indicates the percentage of products delivered in relation to the total
number of products ordered.
.. note::
When no backorder is created, this KPI decreases.
- :guilabel:`On Time Operations`: indicates the percentage of transfers made on time for the
selected operation (i.e., the transfer date is less than or equal to scheduled date for the
transfer).
The following charts are available:
- :guilabel:`Fill Rate by Demand`: shows the percentage of products delivered in relation to the
total number of products ordered.
.. tip::
When no backorder is created, this KPI decreases.
- :guilabel:`On Time rate by Demand`: shows the percentage of transfers made on time by product.
- :guilabel:`Internal lead time`: shows the average time between the creation and the validation of
transfers by operation.
- :guilabel:`Moves lines count by operation`: shows the total number of completed stock move lines
by operation type over the selected period.
- :guilabel:`Weekly Stock Moves Lines by operation`: shows the total number of completed stock move
lines weekly, by operation type.
- :guilabel:`Transfer count by responsible and operation`: shows the number of transfers by
employee, detailing the type of operation.
- :guilabel:`Quantity of stock adjustments by category`: shows adjusted stock quantity, by product
category.
- :guilabel:`Qty scrapped product by category`: shows the quantity of product scrapped, by product
category.
.. _inventory/dashboards/warehouse-metrics-dashboard:
Warehouse Metrics dashboard
===========================
The :guilabel:`Warehouse Metrics` dashboard provides a high-level view of the value and availability
of stock. It enables monitoring of stock reservation levels both in quantity and value,
identification of products with negative stock, and analysis of stock distribution and value across
the most used locations and top products. It also tracks important details like the creation date of
stock, so warehouse or purchasing managers can identify slow-moving or stagnant products and take
action, such as promoting, discounting, or returning products.
.. image:: dashboards/warehouse-metrics.png
:alt: Warehouse Metrics dashboard
.. note::
The value of stock depends on the valuation method used.
.. tip::
For a more precise analysis, filter the dashboard by product via the search bar.
Navigate the dashboard
----------------------
Three cards at the top of the dashboard show the following information:
- :guilabel:`Share reserved stock Qty`: indicates the quantity of stock reserved in relation to the
total quantity of stock on hand, both as a percentage and number.
- :guilabel:`Share reserved stock value`: indicates the value of reserved stock in relation to the
total value of stock on hand, both as a percentage and number.
- :guilabel:`Lines with negative stock`: indicates the number of inventory lines with a negative
stock quantity.
The following charts are available:
- :guilabel:`Available & Reserved Stock Quantity`: shows the quantity of available stock (i.e.,
stock on hand minus reserved stock) and the quantity of reserved stock, per most-used location. At
the top right of the chart, click :guilabel:`Top Products` to see this information for the top
products, i.e., the products with the highest quantities.
- :guilabel:`Available & Reserved Stock Value`: shows the value of available stock (i.e., stock on
hand minus reserved stock) and the value of reserved stock, per most-used location. At the top
right of the chart, click :guilabel:`Top Products` to see this information for the top products,
i.e., the products with the most total value.
- :guilabel:`Ageing stock qty by product and creation date`: shows, by product, the quantity of
stock that has been held since its creation. To change the creation date period, hover over the
chart then select the desired period from the dropdown.
.. note::
For products not tracked by lot/serial number, this chart only displays the date of first
receipt except if the stock went down to 0.
- :guilabel:`Ageing stock value by product and creation date`: shows, by product, the value of
stock that has been held since its creation. To change the creation date period, hover over the
chart then select the desired period from the dropdown.
- :guilabel:`Top 10 products with negative stock`: shows the ten products with the most negative
stock. Depending on the situation, manual stock corrections may be needed for products shown here.
By default, this is shown as a donut chart; click :guilabel:`Top 10` at the top right of
the chart to see this in list form.

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View File

@@ -18,8 +18,8 @@ making, ensuring stock availability for upcoming sales, manufacturing, and reple
The forecast report is **only** available on products where inventory is being tracked, commonly
referred to as a *storable product*.
Navigating the forecast report
==============================
Navigating the report
=====================
The forecast report can be accessed via the **Inventory**, **Purchase**, **Manufacturing**, and
**Sales** apps.

View File

@@ -1,16 +1,17 @@
===================
Locations dashboard
===================
================
Locations report
================
The *Locations* dashboard in the **Inventory** application provides an overview of on-hand storage
The *Locations* report in the **Inventory** application provides an overview of on-hand storage
locations for company products. Use this report to see where stock is stored, identify
:ref:`misplaced items <inventory/warehouse_storage/stranded>`, or view past inventory to see product
locations on specific dates.
To access the locations report, the *Storage Locations* feature must be enabled. To do that, go to
:menuselection:`Inventory app --> Configuration --> Settings`. In the :guilabel:`Warehouse` section,
tick the checkbox for :guilabel:`Storage Locations`, and click :guilabel:`Save`. Then, access the
locations dashboard by navigating to :menuselection:`Inventory app --> Reporting --> Locations`.
To access the *Locations* report, the *Storage Locations* feature must be enabled. To do that, go
to :menuselection:`Inventory app --> Configuration --> Settings`. In the :guilabel:`Warehouse`
section, tick the checkbox for :guilabel:`Storage Locations`, and click :guilabel:`Save`. Then,
access the main :guilabel:`Locations` report by navigating to :menuselection:`Inventory app -->
Reporting --> Locations`.
.. note::
The *Reporting* menu in **Inventory** is only accessible to users with :doc:`admin access
@@ -18,10 +19,10 @@ locations dashboard by navigating to :menuselection:`Inventory app --> Reporting
.. _inventory/warehouses_storage/locations-report:
Navigate the locations dashboard
================================
Navigate the report
===================
By default, the :guilabel:`Locations` dashboard lists all on-hand products in stock (in the
By default, the :guilabel:`Locations` report lists all on-hand products in stock (in the
:guilabel:`Product` column), along with the following information:
- :guilabel:`Location`: current storage location. If a product is stored at `Shelf 1` and `Shelf 2`,
@@ -77,12 +78,12 @@ empty locations, click into the search bar and select the :guilabel:`Empty Locat
Generate reports
================
After learning how to :ref:`navigate the locations dashboard
After learning how to :ref:`navigate the locations report
<inventory/warehouses_storage/locations-report>`, it can be used to create and share different
reports.
A few common reports that can be created using the :guilabel:`Locations` dashboard are detailed
below.
A few common reports that can be created using the :guilabel:`Locations` report are
detailed below.
Dead stock report
-----------------

View File

@@ -1,6 +1,6 @@
=======================
Moves history dashboard
=======================
====================
Moves history report
====================
The *Moves History* report in Odoo *Inventory* provides a detailed record of product movements
(containing past and current locations), lot numbers, and reasons for movement. Reports can be
@@ -11,7 +11,8 @@ inventory turnover, and identifying any discrepancies in inventory.
The reporting feature is only accessible to users with :doc:`admin access
<../../../../general/users/access_rights>`.
To access the stock report, go to :menuselection:`Inventory app --> Reporting --> Moves History`.
To access the moves history report, go to :menuselection:`Inventory app --> Reporting --> Moves
History`.
.. image:: moves_history/moves-history.png
:align: center
@@ -19,8 +20,8 @@ To access the stock report, go to :menuselection:`Inventory app --> Reporting --
.. _inventory/warehouses_storage/moves-history-report:
Navigate the moves history report
=================================
Navigate the report
===================
In the report, the columns represent:

View File

@@ -15,8 +15,8 @@ To access the stock report, go to :menuselection:`Inventory app --> Reporting --
:align: center
:alt: Show the stock report, accessible by going to Inventory > Reporting > Stock.
Navigate the stock report
=========================
Navigate the report
===================
On the stock report, the left sidebar includes several groupings to narrow down what is being shown.
The default groupings are :guilabel:`Warehouses`, which filters products by specific warehouses,

View File

@@ -12,3 +12,4 @@ Advanced
advanced/vendor_costs_report
advanced/procurement_expenses_report
advanced/edi
advanced/purchase_dashboard

View File

@@ -0,0 +1,92 @@
====================================
Purchase & Vendor analysis dashboard
====================================
The :guilabel:`Purchase & Vendor analysis` dashboard, available in the :doc:`Odoo Dashboards
<../../../productivity/dashboards>` app, offers various metrics to evaluate purchasing performance
and vendor reliability.
The dashboard tracks financial data like total and average purchase amounts and the number of
purchase orders. It also provides KPIs for supplier performance, such as the average time to receive
products and the percentage of quantities received on time. This makes it possible to rank vendors
and optimize procurement strategy accordingly.
To access the :guilabel:`Purchase & Vendor analysis` dashboard, go to the Dashboards app, then, in
the left panel, navigate to the :guilabel:`Logistics` section and click the name of the
dashboard. The dashboard opens in the main view.
.. image:: purchase_dashboard/purchase-vendor-analysis.png
:alt: Purchase & Vendor analysis dashboard
.. seealso::
- :ref:`Using Odoo dashboards <dashboards/use-dashboards>`
- :ref:`Customizing Odoo dashboards <build_and_customize_dashboards/customize>`
.. note::
- The :ref:`rights to access <dashboards/access-and-sharing>` Odoo dashboards are based on user
groups, and are managed within the Dashboards app. By default, the :guilabel:`Purchase & Vendor
analysis` dashboard is only visible to, and can only be accessed by, users with admin access to
the **Inventory** app.
.. _purchase/dashboards/navigate:
Navigate the dashboard
======================
.. tip::
- By default, this dashboard shows data for :guilabel:`All time`. To show data for a specific
period, click :icon:`fa-calendar` :guilabel:`All time` above the dashboard and select or define
the appropriate period.
- For a more precise analysis, filter the dashboard by vendor via the search bar.
Eight cards at the top of the dashboard show the following information:
- :guilabel:`Purchased value`: indicates the total value of purchases during the selected period.
- :guilabel:`Average order value`: indicates the average purchase amount per order during the
selected period.
- :guilabel:`Number or orders`: indicates the number of purchase orders during the selected period.
- :guilabel:`Quantity ordered`: indicates the quantity of products ordered during the selected
period.
- :guilabel:`Days to receive`: indicates the average number of days between the order and receipt of
purchased products (i.e., between the order deadline of purchase order and the expected arrival of
the purchase order line).
.. note::
The expected arrival date is not impacted by a change to the scheduled date on the receipt.
- :guilabel:`Days to Confirm`: indicates the average number of days before a purchase order is
confirmed (i.e., between the creation date of the RFQ and the confirmation data of the purchase
order).
- :guilabel:`Supplier service level`: indicates the quantity received versus the quantity purchased,
as a percentage.
.. note::
This KPI is impacted by purchases with future expected receipts.
- :guilabel:`On time deliveries`: indicates the percentage of products received on time (based on
the expected arrival date on purchase order lines)
The following charts are available:
- :guilabel:`Purchase Value by confirmation date`: shows the total value of confirmed purchases by
date.
- :guilabel:`% On time deliveries by vendor`: shows the percentage of products received on time, by
vendor (based on expected arrival on purchase order lines.)
- :guilabel:`Top vendors by amount`: shows the ranking of vendors by total value of purchase orders
and number of purchase orders.
- :guilabel:`Top vendors by lead time in days`: shows the average number of days required to receive
purchased products, by vendor (:guilabel:`Order deadline purchase order` - :guilabel:`Expected
arrival purchase order line`).
.. note::
The expected arrival date is not impacted by a change to the scheduled date on the receipt.
- :guilabel:`Average product purchased cost by confirmation week`: shows the average unit cost of
products purchased, by week in which the purchase order is confirmed.
- :guilabel:`Top purchase orders by value`: lists the ten purchase orders with the highest total
value, in descending order.
- :guilabel:`Top 10 late receipts`: lists the ten receipts with the longest delay after the expected
receipt date.
- :guilabel:`Top purchased products`: lists the ten products with the highest total purchase amount,
in descending order.
- :guilabel:`Supplier Dependency Chart`: shows the percentage of purchases by buyer.

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB