diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/just_in_time.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/just_in_time.rst index 33bb3e3ccf..dc489c600a 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/just_in_time.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/just_in_time.rst @@ -43,8 +43,8 @@ reducing the risk of overstocking. .. note:: Just-in-time logic determines the exact timing of replenishment. If you want to extend this logic - to also consider near-future demand beyond the forecast date, see :ref:`Visibility Days - ` + to also consider near-future demand beyond the forecast date, see :ref:`Horizon Days + ` If the forecasted quantity falls below the minimum on the forecasted date, replenishment is triggered immediately to prevent shortages. If the quantity falls below the minimum after the diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.rst index f25947b51c..e422d9c143 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.rst @@ -36,7 +36,6 @@ To set up reordering rules for the first time, refer to: To understand and optimize replenishment using advanced features, see: - :doc:`Just in time logic ` -- :ref:`Visibility days ` - :ref:`Horizon days ` .. _inventory/warehouses_storage/configure-rr: @@ -137,7 +136,6 @@ For advanced usage, learn about the following reordering rule fields: - :ref:`Vendor ` - :ref:`Bill of materials ` - :ref:`Procurement group ` -- :ref:`Visibility days ` .. note:: The fields above are not available by default, and must be enabled by selecting the |adjust| in @@ -389,88 +387,48 @@ advanced configurations of reordering rules. Consider the following: .. seealso:: :doc:`Just-in-time logic ` -.. _inventory/warehouses_storage/visibility-days: - -Visibility days -=============== - -*Visibility days* enable the ability to determine if additional quantities should be added to the -planned replenishment. Odoo checks if forecasted stock on the forecasted date will drop below the -minimum in the reordering rule. **Only if** it is time to reorder, visibility days check additional -future demand by the specified number of days. - -.. note:: - Visibility days extend the standard just-in-time replenishment logic by looking beyond the - immediate forecasted date. To fully understand how Odoo determines when replenishment is - triggered, refer to the :doc:`Just-in-time logic ` - -This feature helps consolidate orders by grouping immediate and near-future needs, reducing -transport costs and enabling supplier discounts for larger orders. - -To set visibility days to incorporate orders for a specified number of days in the future, navigate -to :menuselection:`Inventory app --> Operations --> Replenishment`, or by clicking the *Reordering -Rules* smart button from the product form. - -Next, enable the :guilabel:`Visibility Days` field by clicking the |adjust| to the far right and -choosing the feature from the drop-down menu. Then, enter the desired visibility days. - -.. important:: - The forecasted date is never pushed forward or extended; Odoo only checks the extra visibility - days if the stock falls below the minimum threshold on the forecasted date. - -Example where visibility days is triggered ------------------------------------------- - -A product shipped from Asia has a combined vendor lead time of 30 days and a shipping cost of $100 -(including :doc:`landed costs <../../inventory_valuation/landed_costs>` and -tariffs). - -- November 4: Current date. The forecasted date is December 4 (30 days later). -- |SO| 1: Requires the product by Dec 4. Odoo places the order today, costing $100. -- |SO| 2: Requires the product by Dec 19. Normally, Odoo would order on Nov 19, costing an - additional $100. -- |SO| 3: Requires the product by Dec 25. Normally, Odoo would order on Nov 25, costing another - $100. - -Ordering separately for these sales orders totals $300 in shipping costs. - -.. image:: reordering_rules/forecasted-date.png - :alt: Show forecasted date visualization. +Horizon days +============ -Setting :guilabel:`Visibility Days` to `20.0` allows Odoo to "look ahead" 20 days from December 4 -(|SO| 1's forecasted date) to December 24. +*Horizon days* allow users to extend the time window between today's date and the forecasted date +when calculating for the forecasted quantity. This features allows users to plan and restock +inventory proactively, rather than following a just-in-time approach. The feature is meant to help +users plan replenishment in advance by increasing the :ref:`forecasted date +`. -- It groups |SO| 2's order with |SO| 1, reducing shipping costs by consolidating orders. -- |SO| 3, which is due on Dec 25, is one day late and is not grouped with the other two orders. +.. math:: + :class: overflow-scroll -Counterexample where visibility days is not triggered ------------------------------------------------------ + \text{Forecasted date} = \text{Current date} + \text{Vendor Lead Time} + \text{Horizon Days} -Considering the example above, if |SO| 1 does not exist, then: +Since horizon days are only meant to be used with manual reordering rules, find details about the +feature in the :doc:`Replenishment report article `. -- **November 4**: Current date. The forecasted date is December 4 (30 days later). -- **November 5**: The forecasted date shifts to December 5. -- |SO| 2: Requires the product by December 19. Odoo will only trigger the order on November 19, - meaning the user will not see a replenishment notification until then. +.. note:: + Horizon days are configured on a company level. -This shows that visibility days complement just-in-time logic by optimizing it to balance -replenishment costs more effectively. +The default horizon days setting can be set or updated by navigating to the +:menuselection:`Inventory app --> Advanced Scheduling`. Enter the desired number of days in the +:guilabel:`Replenishment Horizon` field, and click :guilabel:`Save`. -.. image:: reordering_rules/counterexample.png - :alt: Example where the visibility days does not trigger. +.. image:: reordering_rules/replenishment-horizon.png + :alt: The Replenishment Horizon setting in the Inventory app. -Horizon days -============ +Example of how horizon days affect replenishment planning +--------------------------------------------------------- -*Horizon days* determine how many days ahead Odoo checks if the forecasted quantity will drop below -reordering rule's minimum. The feature is meant to help users plan replenishment in advance, by -increasing the :ref:`forecasted date `. +On the Replenishment report, there are currently two products listed due for reordering: `Drawer, +Black` and `Corner Desk`. This is based on their current level of on-hand stock, and their +forecasted stock level. The default horizon days is set as `20`. -.. math:: - :class: overflow-scroll +.. image:: reordering_rules/twenty-days.png + :alt: Replenishment report with horizon days set at 20. - \text{Forecasted date} = \text{Current date} + \text{Vendor Lead Time} + \text{Horizon Days} +However, by extending the horizon days to `30`, an additional product is added to the list. +.. image:: reordering_rules/thirty-days.png + :alt: Replenishment report with horizon days set at 30. -Since horizon days are only meant to be used with manual reordering rules, find details about the -feature in the :doc:`Replenishment report article `. +This is because the additional product, `[FURN_0789] Individual Workplace`, has a delivery scheduled +in twenty-nine days, at which point their on-hand stock levels will fall below the minimum needed +on-hand. diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/counterexample.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/counterexample.png deleted file mode 100644 index ee19a4f8f3..0000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/counterexample.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/forecasted-date.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/forecasted-date.png deleted file mode 100644 index de774bd061..0000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/forecasted-date.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/replenishment-horizon.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/replenishment-horizon.png new file mode 100644 index 0000000000..e17bf1ca6a Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/replenishment-horizon.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/thirty-days.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/thirty-days.png new file mode 100644 index 0000000000..79bdbffa5e Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/thirty-days.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/twenty-days.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/twenty-days.png new file mode 100644 index 0000000000..115a8e8d58 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/twenty-days.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/report.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/report.rst index eb20181b92..ddee6906d6 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/report.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/report.rst @@ -33,8 +33,8 @@ By default, the quantity in the :guilabel:`To Order` field is the quantity requi the field and changing the value. To replenish a product manually, click :icon:`fa-truck` :guilabel:`Order`. -Click :icon:`fa-bell-slash` :guilabel:`Snooze` to temporarily deactivate the reordering rule for -the set period, hiding the entry from the replenishment dashboard, when it is supposed to appear. +Click :icon:`fa-bell-slash` :guilabel:`Snooze` to temporarily deactivate the reordering rule for the +set period, hiding the entry from the replenishment dashboard, when it is supposed to appear. .. tip:: Defining a :guilabel:`Vendor` allows filtering or grouping demands by the vendor. This simplifies @@ -69,7 +69,9 @@ Horizon days *Horizon days* determine how many days ahead Odoo checks if the forecasted quantity will drop below reordering rule's minimum. The feature is meant to help users plan replenishment in advance, by increasing the :ref:`forecasted date ` on the -:doc:`replenishment report `. +:doc:`replenishment report `. Horizon days look ahead a specified number of days and trigger +reordering rules as soon as the forecasted quantity falls below the minimum within that window, even +if no replenishment is needed today. .. example:: Setting horizon days to `7` ensures all manual reordering rules set to trigger within the next @@ -80,14 +82,6 @@ To set horizon days, go to :menuselection:`Inventory app --> Operations --> Repl click :icon:`fa-angle-double-right` :icon:`fa-folder` :guilabel:`Manual` in the left sidebar. In the menu that appears, set the number of :guilabel:`Horizon` days. -Both horizon days and :ref:`visibility days ` allow -Odoo to anticipate future demand, but they work differently: - -- **Visibility days**: only checks future demand if a replenishment would have been triggered today. -- **Horizon days**: looks ahead a specified number of days and triggers reordering rules as soon as - the forecasted quantity falls below the minimum within that window — even if no replenishment is - needed today. - .. example:: - Current date: Feb 18 - On hand quantity: 10