Skip to content

Commit d90aa95

Browse files
committed
[ADD] Inventory: Just In Time logic
1 parent c78b035 commit d90aa95

File tree

6 files changed

+111
-102
lines changed

6 files changed

+111
-102
lines changed

content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ manufacturing order (MO), with the best choice depending on the business process
2727

2828
Automatically suggest or generate POs or MOs when stock falls below a minimum level.
2929

30+
.. card:: Just in time logic
31+
:target: replenishment/just_in_time
32+
:tag: Recommended
33+
:large:
34+
35+
Avoid overstocking by placing order precisely to meet deadlines.
36+
3037
.. card:: MTO
3138
:target: replenishment/mto
3239
:tag: Beginner-friendly
@@ -67,8 +74,8 @@ Key points include:
6774
- :ref:`Manual reordering rules <inventory/warehouses_storage/manual-rr>`: Generate suggestions in
6875
the replenishment report for user review, allowing adjustments and batch orders while meeting
6976
deadlines.
70-
- :ref:`Just-in-time logic <inventory/warehouses_storage/just-in-time>`: A strategy to replenish
71-
only what is needed to prevent overstocking.
77+
- :doc:`Just in time logic <replenishment/just_in_time>`: A strategy to replenish only what is
78+
needed to prevent overstocking.
7279

7380
.. seealso::
7481
- :doc:`replenishment/reordering_rules`
@@ -119,6 +126,7 @@ disrupts its manual replenishment method.
119126

120127
replenishment/mto
121128
replenishment/reordering_rules
129+
replenishment/just_in_time
122130
replenishment/report
123131
replenishment/lead_times
124132
replenishment/resupply_warehouses
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
==================
2+
Just in time logic
3+
==================
4+
5+
.. |SO| replace:: :abbr:`SO (Sales Order)`
6+
.. |SOs| replace:: :abbr:`SOs (Sales Orders)`
7+
8+
*Just-in-time logic* in Odoo minimizes storage costs by placing orders precisely to meet deadlines.
9+
This is achieved using the :ref:`forecasted date <inventory/warehouses_storage/forecasted-date>`,
10+
which determines when replenishment is necessary to avoid overstocking.
11+
12+
The forecasted date is the **earliest possible date** to receive a product if the replenishment
13+
process starts immediately. It is calculated by summing the lead times linked to the replenishment
14+
process, such as :ref:`vendor lead times <inventory/warehouses_storage/purchase-lt>` and
15+
:ref:`purchasing delays <inventory/warehouses_storage/purchase-security-lt>` for purchases, or
16+
:ref:`manufacturing lead times <inventory/warehouses_storage/manuf-lt>` for production. Both
17+
automatic and manual reordering rules work this way.
18+
19+
.. example::
20+
For a product with a 5-day total lead time and a sales order delivery date in 10 days, Odoo waits
21+
5 days to place the order, ensuring it arrives just in time for delivery.
22+
23+
Important considerations:
24+
25+
- **If this feels risky**, consider adding buffer time or :doc:`adjusting lead times <lead_times>`
26+
for more flexibility.
27+
- While lead times and just-in-time logic provide additional control, **reordering rules work
28+
perfectly fine without them**. Keeping delivery dates on sales orders as their *creation date*
29+
ensures purchases are immediately triggered when needed
30+
31+
.. _inventory/warehouses_storage/forecasted-date:
32+
33+
Forecasted date and To Order quantity
34+
-------------------------------------
35+
36+
The *forecasted date* is the earliest receipt date for a product, if it is ordered right now. It is
37+
calculated by summing the lead times linked to the product's replenishment process. The total of
38+
these lead times, added to the current date, determines when Odoo checks for demanded stock.
39+
40+
To view the forecasted date go to the replenishment report and click the :icon:`fa-info-circle`
41+
:guilabel:`(info)` icon for the desired reordering rule. The :guilabel:`Replenishment Information`
42+
pop-up window displays the :guilabel:`Forecasted Date` and various lead times.
43+
44+
.. example::
45+
A manual reordering rule is set up with no minimum or maximum quantities.
46+
47+
- Vendor lead time is 4 days, the purchase security lead time is 1 day, and the days to purchase
48+
is 2 days.
49+
- Today's date is November 26.
50+
- These add up to 7 days, making the forecasted date, December 3rd.
51+
52+
A confirmed |SO| for 5 units has a delivery date of December 3rd (7 days from today). This demand
53+
will appear on the replenishment report today, in the **To Order** field.
54+
55+
However, if the delivery date were later than December 3rd, it would not yet appear on the
56+
report. Odoo only displays quantities to replenish when they fall within the forecasted date
57+
window, ensuring orders are placed precisely when needed.
58+
59+
.. image:: just_in_time/replenishment-info.png
60+
:alt: Show forecasted date in Odoo.
61+
62+
The *just-in-time* logic ensures replenishment happens only when it's necessary for the forecasted
63+
date's demand, helping avoid overstocking.
64+
65+
For example:
66+
67+
- If the forecasted quantity drops below the minimum **on** the forecasted date, replenishment must
68+
begin immediately to avoid shortages.
69+
- If the quantity drops below the minimum **after** the forecasted date, replenishment can wait.
70+
71+
The **To Order** quantity is the total demand on the forecasted date.
72+
73+
By timing purchase orders based on the combined lead times, Odoo optimizes stock levels, keeping
74+
inventory minimal while ensuring future requirements are ordered at the last possible
75+
moment—strategic procrastination without the stress!
76+
77+
Common confusion about forecasted quantities
78+
--------------------------------------------
79+
80+
|SOs| due **after** the :guilabel:`Forecasted Date` are not accounted for in the
81+
:guilabel:`Forecast` quantities of the reordering rule.
82+
83+
They are, however, accounted for on the forecasted report that is opened by clicking the
84+
:icon:`fa-area-chart` :guilabel:`(graph)` icon on the replenishment report, as this one represents
85+
the **long-term forecasted quantity**.
86+
87+
.. example::
88+
89+
.. figure:: just_in_time/zero-forecast.png
90+
:alt: Forecast and To Order quantities is zero.
91+
92+
Continuing the above example, when the sales order's deadline is adjusted to December 4th, the
93+
:guilabel:`Forecast` and :guilabel:`To Order` quantities are zero.
94+
95+
.. figure:: just_in_time/five-forecast.png
96+
:alt: Show forecasted report.
97+
98+
Opening the :guilabel:`Forecasted Report` shows the :guilabel:`Forecasted` units is `5.00`.

content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.rst

Lines changed: 3 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ To set up reordering rules for the first time, refer to:
3535

3636
To understand and optimize replenishment using advanced features, see:
3737

38-
- :ref:`Just-in-time logic <inventory/warehouses_storage/just-in-time>`
38+
- :doc:`Just in time logic <just_in_time>`
3939
- :ref:`Visibility days <inventory/warehouses_storage/visibility-days>`
4040
- :ref:`Horizon days <inventory/warehouses_storage/horizon-days>`
4141

@@ -127,8 +127,8 @@ rule line item:
127127

128128
.. note::
129129
To learn how the :guilabel:`On Hand`, :guilabel:`Forecast`, and :guilabel:`To Order` fields are
130-
calculated using on-hand quantities and future demand, see the :ref:`Just-in-time logic
131-
<inventory/warehouses_storage/just-in-time>` section.
130+
calculated using on-hand quantities and future demand, see :doc:`Just in time logic
131+
<just_in_time>`
132132

133133
For advanced usage, learn about the following reordering rule fields:
134134

@@ -386,103 +386,6 @@ advanced configurations of reordering rules. Consider the following:
386386
five products' reordering rules. This ensures future demands for these products are
387387
managed separately and assigned to different |RFQs| (the usual behavior).
388388
389-
.. _inventory/warehouses_storage/just-in-time:
390-
391-
Just-in-time logic
392-
==================
393-
394-
*Just-in-time logic* in Odoo minimizes storage costs by placing orders precisely to meet deadlines.
395-
This is achieved using the :ref:`forecasted date <inventory/warehouses_storage/forecasted-date>`,
396-
which determines when replenishment is necessary to avoid overstocking.
397-
398-
The forecasted date is the **earliest possible date** to receive a product if the replenishment
399-
process starts immediately. It is calculated by summing the lead times linked to the replenishment
400-
process, such as :ref:`vendor lead times <inventory/warehouses_storage/purchase-lt>` and
401-
:ref:`purchasing delays <inventory/warehouses_storage/purchase-security-lt>` for purchases, or
402-
:ref:`manufacturing lead times <inventory/warehouses_storage/manuf-lt>` for production. Both
403-
automatic and manual reordering rules work this way.
404-
405-
.. example::
406-
For a product with a 5-day total lead time and a sales order delivery date in 10 days, Odoo waits
407-
5 days to place the order, ensuring it arrives just in time for delivery.
408-
409-
Important considerations:
410-
411-
- **If this feels risky**, consider adding buffer time or :doc:`adjusting lead times <lead_times>`
412-
for more flexibility.
413-
- While lead times and just-in-time logic provide additional control, **reordering rules work
414-
perfectly fine without them**. Keeping delivery dates on sales orders as their *creation date*
415-
ensures purchases are immediately triggered when needed
416-
417-
.. _inventory/warehouses_storage/forecasted-date:
418-
419-
Forecasted date and To Order quantity
420-
-------------------------------------
421-
422-
The *forecasted date* is the earliest receipt date for a product, if it is ordered right now. It is
423-
calculated by summing the lead times linked to the product's replenishment process. The total of
424-
these lead times, added to the current date, determines when Odoo checks for demanded stock.
425-
426-
To view the forecasted date go to the replenishment report and click the :icon:`fa-info-circle`
427-
:guilabel:`(info)` icon for the desired reordering rule. The :guilabel:`Replenishment Information`
428-
pop-up window displays the :guilabel:`Forecasted Date` and various lead times.
429-
430-
.. example::
431-
A manual reordering rule is set up with no minimum or maximum quantities.
432-
433-
- Vendor lead time is 4 days, the purchase security lead time is 1 day, and the days to purchase
434-
is 2 days.
435-
- Today's date is November 26.
436-
- These add up to 7 days, making the forecasted date, December 3rd.
437-
438-
A confirmed |SO| for 5 units has a delivery date of December 3rd (7 days from today). This demand
439-
will appear on the replenishment report today, in the **To Order** field.
440-
441-
However, if the delivery date were later than December 3rd, it would not yet appear on the
442-
report. Odoo only displays quantities to replenish when they fall within the forecasted date
443-
window, ensuring orders are placed precisely when needed.
444-
445-
.. image:: reordering_rules/replenishment-info.png
446-
:alt: Show forecasted date in Odoo.
447-
448-
The *just-in-time* logic ensures replenishment happens only when it's necessary for the forecasted
449-
date's demand, helping avoid overstocking.
450-
451-
For example:
452-
453-
- If the forecasted quantity drops below the minimum **on** the forecasted date, replenishment must
454-
begin immediately to avoid shortages.
455-
- If the quantity drops below the minimum **after** the forecasted date, replenishment can wait.
456-
457-
The **To Order** quantity is the total demand on the forecasted date.
458-
459-
By timing purchase orders based on the combined lead times, Odoo optimizes stock levels, keeping
460-
inventory minimal while ensuring future requirements are ordered at the last possible
461-
moment—strategic procrastination without the stress!
462-
463-
Common confusion about forecasted quantities
464-
--------------------------------------------
465-
466-
|SOs| due **after** the :guilabel:`Forecasted Date` are not accounted for in the
467-
:guilabel:`Forecast` quantities of the reordering rule.
468-
469-
They are, however, accounted for on the forecasted report that is opened by clicking the
470-
:icon:`fa-area-chart` :guilabel:`(graph)` icon on the replenishment report, as this one represents
471-
the **long-term forecasted quantity**.
472-
473-
.. example::
474-
475-
.. figure:: reordering_rules/zero-forecast.png
476-
:alt: Forecast and To Order quantities is zero.
477-
478-
Continuing the above example, when the sales order's deadline is adjusted to December 4th, the
479-
:guilabel:`Forecast` and :guilabel:`To Order` quantities are zero.
480-
481-
.. figure:: reordering_rules/five-forecast.png
482-
:alt: Show forecasted report.
483-
484-
Opening the :guilabel:`Forecasted Report` shows the :guilabel:`Forecasted` units is `5.00`.
485-
486389
.. _inventory/warehouses_storage/visibility-days:
487390

488391
Visibility days

0 commit comments

Comments
 (0)