@@ -20,33 +20,41 @@ Key parameters
2020Demand calculation
2121==================
2222
23- To find the * average daily demand* , Odoo sums all :ref: `validated deliveries
23+ To estimate demand, Odoo sums all :ref: `validated deliveries
2424<inventory/delivery/one-step>`, :ref: `components consumed in manufacturing orders
2525<manufacturing/basic_setup/setup-components>` (MOs), or used to :doc: `resupply subcontractors
26- <../../manufacturing/subcontracting/subcontracting_resupply>` in the *Based on * period and divides
27- that total by the number of days in the *Based on * period. Lastly, that value is multiplied by the
28- *Factor * to determine volume.
29-
30- .. tip ::
31- In a :ref: `multi-warehouse <purchase/advanced/example-wh-suggestion >` setup, an *In * field
32- appears. Choose a specific warehouse or leave blank to use all warehouses to calculate demand
33- accordingly.
26+ <../../manufacturing/subcontracting/subcontracting_resupply>` coming from the warehouse specified
27+ on the RFQ in the *Based on * period. The *average daily demand * is this sum of outgoing moves
28+ divided by the number of days in the *Based on * period, multiplied by *Factor *. The
29+ *estimated demand * is the *average daily demand * multiplied by *Replenish For * days.
3430
3531.. math ::
3632 :class: overflow-scroll
3733
3834 Average~Daily~Demand = \frac {Delivered~or~Consumed~Items}{Based~on~Days} \times Factor
35+ \\ \\ Estimated~Demand = Average~Daily~Demand \times Replenish~for~Days
36+
37+ .. note ::
38+ Only :guilabel: `Assigned ` or :guilabel: `Confirmed ` moves are taken into account in
39+ the *average daily demand * calculations, sales quotations or manufacturing orders
40+ in :guilabel: `Draft ` are not taken into account until validated.
41+
42+ .. tip ::
43+ In a multi-warehouse setup, internal deliveries are also counted in demand estimation.
44+ In the case of a central warehouse dispatching products to individual stores,
45+ the *average daily demand * of the central warehouse will include internal transfers to
46+ individual stores.
3947
4048Recommended quantity
4149====================
4250
43- To find the suggested quantity, Odoo multiplies the average by * Replenish for * days to get the
44- recommended quantity.
51+ To find the suggested quantity, Odoo deducts the * estimated demand * from the current stock
52+ available quantity and all incoming shipments .
4553
4654.. math ::
4755 :class: overflow-scroll
4856
49- Recommended~Quantity = Average~Daily~ Demand \times Replenish~for~Days
57+ Recommended~Quantity = Estimated~ Demand - (Available~Stock + Incoming~Stock)
5058
5159 .. example ::
5260 In :ref: `example 1 <purchase/advanced/example-suggestion >`, Odoo recommends `19 ` units to
@@ -83,17 +91,17 @@ In the |RFQ|, set the :guilabel:`Vendor` field to the chosen supplier.
8391In the :guilabel: `Products ` tab, click the :guilabel: `Catalog ` button to view that vendor's items.
8492
8593.. important ::
86- Verify that each product in the catalog is configured with the chosen vendor.
94+ Verify that each product in the catalog is configured with the chosen vendor
95+ and that the Purchase Order is in the |RFQ | stage
8796
8897.. tip ::
8998 By default, products listed in the product catalog are filtered by vendor.
9099
91100 Remove the filter in the search bar to view all items or use the built-in :icon: `oi-group `
92101 :guilabel: `Group By ` for :guilabel: `Product Category `.
93102
94- Inside the :guilabel: `Catalog `, click :guilabel: `Suggest ` in the upper-left corner to open the
95- :guilabel: `Suggest Quantities based on Sales & Demands ` pop-up window. Complete its fields as
96- follows:
103+ Inside the :guilabel: `Catalog `, toggle :guilabel: `Suggest ` in the left sidebar to activate
104+ the feature. Complete its fields as follows:
97105
98106- :guilabel: `Replenish for `: Number of days intended to stock products.
99107- :guilabel: `Based on `: There are two inputs:
@@ -103,24 +111,24 @@ follows:
103111
104112 #. Growth factor %: scale the demand up or down (e.g., 120% for 20% growth, 30% for 70% drop).
105113
106- - The total in the lower-right corner shows the order value. Odoo multiplies the vendor's *Unit
114+ - The total in the bottom shows the order value. Odoo multiplies the vendor's *Unit
107115 Price * by the suggested quantity.
108116
109- Once the parameters are confirmed, click :guilabel: `Compute ` to calculate recommended quantities,
110- which are auto-filled in each product's quantities in the catalog. Adjust amounts if needed, then
111- click :guilabel: ` Back to Quotation ` to confirm the final numbers on the |RFQ |.
117+ Once the parameters are confirmed, click :guilabel: `Add All ` to add all suggestions to the
118+ order. Adjust amounts if needed, then click :guilabel: ` Back to Quotation ` to confirm the final
119+ numbers on the |RFQ |.
112120
113121.. _purchase/advanced/example-suggestion :
114122
123+ Example Workflow
124+ ================
125+
115126Recommend at 100% growth
116127------------------------
117128
118129A company needs to replenish orchids for 14 days, referencing the last 30 days of historical data,
119130assuming the revenue growth is the same this month, at 100%.
120131
121- .. image :: suggest/suggest-14.png
122- :alt: Compute suggestion for example 1.
123-
124132Delivered/consumed within the period:
125133
126134- 20 units delivered 15 days ago in a `WH/OUT ` operation.
@@ -152,69 +160,44 @@ Suggested quantity
152160 :alt: Suggestion to purchase 19 units.
153161
154162 Suggestion to purchase 19 orchids. Since the *Unit Price * is $3, :math: `$3 \times 19 = $57`,
155- which is the total amount displayed in the :guilabel: `Suggest Quantities based on Sales &
156- Demands` pop-up window.
163+ which is the total amount displayed.
157164
158- Recommend at 120% growth
159- ------------------------
165+ Planning for Mother's Day
166+ -------------------------
160167
161- To plan for ordering roses this month, the company reviews the previous week's sales. Since a local
162- event is coming up, the company expects 120% growth.
163-
164- .. image :: suggest/suggest-30.png
165- :alt: Compute suggestion for example 2.
168+ To better plan for the upcoming Mother's day week, the company changes *Based on * to the
169+ same month last year (May 2024). As the business has grown since then, they also decide to add
170+ a 120% growth factor.
166171
167172Variables
168173~~~~~~~~~
169174
170- - Replenish for 30 days
171- - Based on: 7 days
175+ - Replenish for 7 days
176+ - Based on: May 2024,
172177
173- - total delivered/consumed in the past week: 166 units
178+ - total delivered/consumed in the entire May 2024 month: 361 units
174179
175180- Factor: 120%
176181
177182.. math ::
178183
179- Average~Daily~Demand = \frac {166 }{ 7 } \times 1.20 \approx 28.46 \text { units/day}
184+ Average~Daily~Demand = \frac {361 }{ 30 } \times 1.20 \approx 14.44 \text { units/day}
180185
181186 Suggested quantity
182187~~~~~~~~~~~~~~~~~~
183188
184189.. math ::
185190
186- Suggested~Quantity = 28.46 \times 30 \approx 853.8 \text { (rounded to 854 units)}
191+ Suggested~Quantity = 14.44 \times 7 \approx 101.08 \text { (rounded up to 102 units)}
187192
188193 .. figure :: suggest/result-30.png
189- :alt: Suggestion to purchase 854 roses .
194+ :alt: Suggestion to purchase 102 orchids .
190195
191- Suggestion to purchase 854 roses . Each rose costs $4.58 with the chosen vendor, so :math: `$4.58
192- \t imes 854 = $3911.32 `.
196+ Suggestion to purchase 102 orchids . Each orchid costs $3 with the chosen vendor, so
197+ :math: `$3 \times 102 = $306 `.
193198
194199.. _purchase/advanced/example-wh-suggestion :
195200
196- Recommend from specific warehouse
197- ---------------------------------
198-
199- When there are multiple warehouses in a company, analyze delivered or consumed quantities in a
200- specific warehouse to narrow the results. This is particularly helpful when multiple warehouses
201- serve different communities, franchises, or branch stores.
202-
203- To do that, ensure :doc: `multiple warehouses are set up
204- <../../inventory/warehouses_storage/inventory_management/warehouses>` and deliveries or :abbr: `MOs
205- ( manufacturing orders ) ` are validated in each warehouse.
206-
207- Navigate to the suggestion window by going to the :menuselection: `Purchase ` app, clicking the
208- desired |RFQ |, clicking the :guilabel: `Catalog ` button in the product line, and then clicking
209- :guilabel: `Suggest ` in the upper-left corner.
210-
211- With multiple warehouses set up, the :guilabel: `In ` field becomes available, where the specific
212- warehouse can be selected to analyze quantities consumed only in the specific warehouse, or leave
213- the field blank to observe quantities across all warehouses.
214-
215- .. image :: suggest/in-field.png
216- :alt: Show In field in the popup, displaying different warehouses to choose from.
217-
218201Best practices
219202==============
220203
0 commit comments