reports:purchasing

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
reports:purchasing [2019/10/03 09:25] – [Suggested order quantities] Gary Willettsreports:purchasing [2024/09/09 05:38] (current) Louisa Wong
Line 1: Line 1:
 {{indexmenu_n>40}} {{indexmenu_n>40}}
-====== 11.04. Purchasing ====== +====== 13.04. Purchasing reports ======
- +
 Purchasing reports (focused on what you have ordered and what you have received and what you want to order) are available at //Report// > //Purchasing//. The following report types are available: Purchasing reports (focused on what you have ordered and what you have received and what you want to order) are available at //Report// > //Purchasing//. The following report types are available:
  
Line 9: Line 7:
 The first 2 options contain several different reports (see below). Select the required report type by clicking on it. The first 2 options contain several different reports (see below). Select the required report type by clicking on it.
  
-===== Purchase Orders... =====+===== Purchase orders =====
  
 {{ :reports:reports2-7.png }} {{ :reports:reports2-7.png }}
Line 59: Line 57:
 In the same way, you can also filter your reports on properties of the purchase orders involved: category, status and both purchase order custom fields.  For more information on purchase order categories see [[purchasing:show_po_categories | here]] In the same way, you can also filter your reports on properties of the purchase orders involved: category, status and both purchase order custom fields.  For more information on purchase order categories see [[purchasing:show_po_categories | here]]
  
-=====  Purchases... =====+=====  Purchases =====
  
 {{ :reports:reports2-10.png }} {{ :reports:reports2-10.png }}
Line 74: Line 72:
  
 ===== Suggested order quantities ===== ===== Suggested order quantities =====
-<WRAP info center round 90%> +Use this report for mSupply to analyse your current stock and, based upon required number of months of stock cover which you enter, suggest how much of each stock item you should consider ordering.
-Not that there are currently 2 options for the suggested order report - //Suggested ordering report// and //Suggested ordering [Excel] report//. They both have the same options as defined below but the second Excel only report will run much more quickly than the first oneeven if the first one is exported to Excel. This is temporary situation: the first option will be removed in a later version of mSupply and the Ezcel only option will be the only option available. +
-</WRAP>+
  
-Use this report for mSupply to analyse your current stock and, based upon required number of days stock cover which you enter, suggest how much of each stock item you should consider orderingYou'll see this window:+There are currently 2 options for the suggested order quantities report:  **Suggested ordering report** and **Suggested ordering [Excel] report**. They both have the same options as defined below but the second Excel only report will run much more quickly than the first oneeven if the first one is exported to Excel. This is temporary situation: the first option will be removed in a later version of mSupply and the Excel option will be the only option available.
  
-{{ :reports:reports2-11.png }}+ 
 +==== Quantification ==== 
 + 
 +Some logic behind the calculations involved in this report is described in detail on the [[purchasing:ordering_from_suppliers#logic_used_for_calculating_purchase_order_quantities|6.01. Ordering stock from suppliers]] page. 
 + 
 +As of version 7.15, mSupply supports a wide array of options for calculating AMC (Average Monthly Consumption), which is then used to forecast needs and then to calculate a requested order quantity. 
 + 
 +The options are: 
 +=== Don't Adjust AMC === 
 +This has been the default in mSupply up until this point.  
 +The consumption (or distribution if not a service delivery point- we're using _consumption_ interchangeably here) is summed up for the number of months specified in the lookback field, and divided by the number of months. 
 +This works well if the item was fully stocked for the whole time. It gives too low a number if stock was low or zero. 
 + 
 +=== Adjust by % of days out of stock === 
 +This method takes each month's consumption, and adjusts it for the number of days in the month the item was out of stock. 
 +We multiply the consumption for the month by (Days in month divided by Days in stock) to get adjusted AMC 
 +Take this example: 
 +  * Item B was in stock for 10 days in the month 
 +  * Its consumption was 500 
 +  * The adjusted AMC is 500 x 31 / 10 = 1,550 
 + 
 + 
 +=== Only consider fully stocked months === 
 +Here, we are attempting to address months with low stock by excluding them from our calculations, rather than adjusting their consumption. 
 +There is a field shown **% of days in stock to be considered fully stocked** that defaults to "90%" 
 +Note that you need to set the lookback period long enough that mSupply will be able to find enough fully stocked months to run the calculation. You can also include more months by setting the **% of days in stock to be considered fully stocked** field to  (say) 50%. 
 +=== mSupply's better algorithm === 
 + 
 +We've tried to come up with a better algorithm here by: 
 +  * ignoring months that are in stock for < 33% of days. That is, if the item was in stock for less than 10 days in the month, the consumption on those days is too erratic to draw conclusions about what the consumption for the whole month would have been.         
 +  * For months with stock >= 33% of days, Multiply the consumption for the month by Square Root(Days in month/Days in stock) to get adjusted AMC. This adjusts the consumption up due to being out of stock, but by a factor up to 1.7 - so not as big an adjustment as the "Adjust by % of days out of stock" method. 
 +  * We also ignore months where the mean stock on hand is less than "% of typical AMC that stock level is considered compromised:" value you enter. This is a bit complicated, but here's an example: 
 +    * Consider Item A - we have set the "when we calculate consumption there are 3 months that were "fully stocked" - those three months give us an AMC of 1500 per month. 
 +    * Now, there's another month that was fully stocked (as in, on all 31 days in the month, there was _some_ stock on hand. 
 +    * But it turns out that the average stock on hand was only 50 - clearly they could never have had "normal" consumption, although they did have stock - if the cutoff is set to 100%, we're saying "ignore this month unless the average stock on hand was 1500 - in this case it's 50, so this month isn't used in the AMC calculations 
 +  
 +We then sum the adjusted consumption for all the eligible months & divide by the number eligible months to get the best AMC eva ;-) 
 + 
 +=============== 
 + 
 +Let's take an example of how this is done: 
 + 
 +Lets say we are using: 
 + 
 +{{:reports:pasted:20240726-030809.png?500}} 
 + 
 +Step 1: 
 +First we are adjusting by % days in stock to be considered fully stocked. This calculation will be used in Step 2 to calculate the typical AMC. 
 +So if this is set as 90%, only months with ≥90% stock will be considered. 
 +In this case, Nov 2023 (202311) and Oct 2023 (202310) are excluded as it is less than 90%. 
 + 
 +{{:reports:pasted:20240726-025947.png}} 
 + 
 +Step 2: 
 +We then calculate the typical AMC which excludes the months Nov 2023 (202311) and Oct 2023 (202310) from step 1. To do this, we use:  
 +(Total consumption of only months included in Step 1)/(Number months usage basis) 
 += 100 / 7.8 = 12.82. Red coloured boxes indicate exclusion. 
 +(Note: We have 7 full months, and 0.8 of a month due to July 2024 (202407) as 26 days is 0.8. 
 + 
 +{{:reports:pasted:20240726-030102.png}} 
 + 
 +Step 3: 
 +Next there is an automatic exclusion for days of low stock ≥33% in the month. Note: This is automatic and is not set by the user. In the example, this is Nov 2023 (202311) as it is the only month with less than 33% days in stock in the month. 
 + 
 +Step 4:  
 +Now we consider the criteria of "100% of typical AMC that stock level is considered compromised" which we entered in the Report options.  
 +Since this is set as 100% by us, we now take the typical AMC (12.82) and check the Mean SOH of each month to make sure that this is equal or higher than 12.82. If stock level is not higher than 12.82, that month will be excluded from the Adjusted AMC calculation (Step 5). Note: If we had selected 90% of typical AMC to be considered compromised, this means we will be looking at 90% stock or more of the typical AMC (12.82) and anything less than this will be excluded. 
 + 
 +To now obtain the number of months to be considered for the adjusted AMC: 
 +We will exclude the 33% low stock month from Step 3. 
 +We will exclude any months with (x)% typical AMC stock level that is considered compromised (which in this case, there is none). 
 +We will be including the month with 11 days in stock however, as it is more than the 33% exclusion step and the first step where it was excluded was just for calculating what months to use for typical AMC. 
 + 
 +From the example, we will now have 8.8 months that we will be considering for the Adjusted AMC.  
 + 
 +{{:reports:pasted:20240726-030224.png}} 
 + 
 +Step 5: 
 +We can now calculate the Adjusted AMC with the formula: 
 +Square root[(Days in month)/(Days in the stock)] * Consumption 
 +We check this individually for each month that has not been excluded. 
 +So, if the "Days in month" = "Days in Stock", the square root of this = 1. 
 +In Dec 2023 (202312) = 1 x 100 (consumption) = 100. 
 +In Oct 2023 (202310) = Squareroot(31/11) = 1.6787. Then 1.6787 x 100 (consumption) = 167.87. 
 + 
 +Add these together: 
 +100 + 167.87 = 267.87 total for all included months that we will use to calculate adjusted AMC. 
 + 
 +Step 6: 
 +For the Adjusted AMC = 267.87/8.8 months = 30.34 units per month. 
 + 
 +**Steps Summarised:** 
 + 
 +Step 1: Adjusting by % Days in Stock  
 +  * Set threshold for fully stocked (e.g., 90%) 
 +  * Exclude months with < 90% stock 
 + 
 +Step 2: Calculate Typical AMC 
 +  * Use months not excluded in Step 1 
 +  * Calculate Typical AMC = (Total consumption of only months included in Step 1)/(Number months usage basis) 
 + 
 +Step 3: Automatic Exclusion for Low Stock 
 +  * Exclude months with < 33% days in stock 
 + 
 +Step 4: Compromised Stock Level Check 
 +  * Set threshold (e.g., 100% of typical AMC) 
 +  * Exclude months below threshold   
 + 
 +Step 5: Calculate Adjusted AMC 
 +  * Apply formula to each included month = Square root[(Days in month)/(Days in stock)] * Consumption 
 +  * Sum the results 
 + 
 +Step 6: Final Adjusted AMC Calculation 
 +  * Divide total consumption by number of months 
 +  * Calculate Adjusted AMC  
 + 
 +Note: If all months have been excluded due to the first or second exclusion criteria, then the typical AMC calculation will automatically be used instead. 
 + 
 +==== Report options ==== 
 + 
 +You'll see this window: 
 + 
 +{{ :reports:pasted:20240509-052350.png?600 |}}
  
 If you want to report on all items, leave the item name field blank, otherwise enter an item name or code. For example, to report on amoxycillin stocks, you could enter "amox" into the field. If you want to report on all items, leave the item name field blank, otherwise enter an item name or code. For example, to report on amoxycillin stocks, you could enter "amox" into the field.
  
 {{ :reports:reports2-12.png }} {{ :reports:reports2-12.png }}
- 
 The drop down list, after the item name and code choices, lists several other fields, including any user defined fields, where the names that you have defined for custom item fields in the //Preferences// are displayed. The drop down list, after the item name and code choices, lists several other fields, including any user defined fields, where the names that you have defined for custom item fields in the //Preferences// are displayed.
  
Line 108: Line 225:
 **Include items with no usage in the last 12 months:** If this box is checked, items which have not been used over the last year will be included. This check box will have no effect if the previous "days cover" field is filled in, as an item with no usage will have "infinite" cover- any stock you do have is going to last you forever **Include items with no usage in the last 12 months:** If this box is checked, items which have not been used over the last year will be included. This check box will have no effect if the previous "days cover" field is filled in, as an item with no usage will have "infinite" cover- any stock you do have is going to last you forever
  
-**Order quantity for X months stock cover:** In this field, enter the number of days stock cover you want to have available. The report will automatically take into account any stock you already have, so all you need to do is enter how many days cover you want, starting from right now, in this box.+**Months stock required:** In this field, enter the number of months stock cover you want to have available. The report will automatically take into account any stock you already have, so all you need to do is enter how many months cover you want
 + 
 +**AMC Adjustment for Out of Stock:** See the "Quantification" discussion above on the different options available. 
 + 
 +**Exclude stock that will expire within 3 months of projected consumption date** is a new/updated checkbox to accurately predict amount of stock that is likely to be wasted due to expiry and current consumption rate. In this current examplemSupply will only aim to distribute stock if the expiry is more than 3 months away. This updated feature is only available in mSupply v7.12 or later.   
 + 
 +This topic is huge so it may be worth reading this topic [[faq:wastage_prediction_due_to_expiry_v7-12|Stock wastage prediction for ordering]]
  
 **Open report in Excel:** Checking this box opens Excel (or any other installed spreadsheet application) and displays the report as a spreadsheet. If you want to save the report, choose File > Save as... in your spreadsheet application. **Open report in Excel:** Checking this box opens Excel (or any other installed spreadsheet application) and displays the report as a spreadsheet. If you want to save the report, choose File > Save as... in your spreadsheet application.
  
 ==== Report output ==== ==== Report output ====
-**Cover column: ** if the column prints ">>>>" this means you have no usage of that itemso you have "infinitecover (i.eif you don'have any usage your current stock with last forever, from a usage point of view, if not from an expiry date point of view!)+ 
 +A typical `Suggested Order` report will look something like below. 
 + 
 +{{:reports:pasted:20240724-051311.png}} 
 + 
 +Definitions of each column after item properties: 
 + 
 +  Stock on hand : Total quantity of stock currently available in your inventory 
 + 
 +  Expiring stock : Calculated by (Total stock that is set to expire) - (Daily stock usage [which is derived from the AMC e.g., AMC / 30 days if 30 days in the month]). The amount of expiring stock to be accounted for is selected in the reports option: 
 +{{:reports:pasted:20240724-003313.png?350}} 
 + 
 +  * Effective SOH : Calculated by ('Stock on hand') - ('Expiring stock'). This is the usable stock available. 
 + 
 +  * Backorder : Quantity of stock that has been ordered by customers but not yet fulfilled due to insufficient stock. 
 + 
 +  * Stock on order : Quantity of stock that has been ordered from suppliers and is expected to arrive but not yet received. 
 + 
 +  * AMC 12 months : Average quantity of stock used per month over the last 12 months. 
 + 
 +  * AMC 24 months: Average quantity of stock used per month over the last 24 months.  
 + 
 +  * Monthly usage for the last (x) months : Calculated by ('Total consumption for the last (x) months of usage data') / ('(x) months of usage data'). This value is set by the user in the Report options: 
 + 
 +{{:reports:pasted:20240724-042721.png?350}} 
 + 
 +  * Number of months considered for adjusted AMC : After the AMC adjustment is made (and months with low stock has been excluded)this value indicates the number of months that have been included for calculating the adjusted AMC. This value is derived from whichever formula has been chosen in the "AMC Adjustment for out of stock"
 +{{:reports:pasted:20240724-062217.png?350}} 
 + 
 +  * Adjusted AMC : This adjusted value is based on the formula selected in the Report options: 
 +{{:reports:pasted:20240724-043258.png?350}} 
 + 
 +  * Number of months in stock : Calculated by ('Effective SOH') / ('Adjusted AMC')This gives the number of months the current stock will last based on adjusted consumption rates. 
 + 
 +  * Ordered Quantity used : This is how much of the stock you have ordered that you will actually need to use, based on how much you use each day and how much stock you already have (Note: forecast calculation will affect this). This is determined by: 
 +         * Calculate the "usage per day of stock" = AMC / 30.4375 
 +         * Multiply "usage per day of stock" with the "total number of days in your months stock required" to get "Total usage required" = Usage per day of stock x Total number of days in your months stock required 
 +         * Calculate your "Future stock on hand" = Stock on order + Effective SOH - Backorder 
 +         * Subtract "Total usage required" from "Future stock on hand" to get the "Net stock difference to be used" = Total usage required - Future stock on hand.  
 +         * This value ("Net stock difference to be used") now determines the "Ordered Quantity used".  
 +                 * If the value is a negative value and there is "Stock on order", add the "Net stock difference to be used" with "Stock on order" = "Net stock difference to be used" + "Stock on order" 
 +                 * If the value is a positive value and there is "Stock on order", if "Net stock difference to be used" is greater than "Stock on order", the "Ordered Quantity used" will be the same value as the "Stock on order" as all the stock on order will be used up.  
 + 
 +  * Suggested Order calculated by: 
 +     * If expected delivery date has not been adjusted: ('Months stock required' x 'Adjusted AMC') - ('Effective SOH' - 'Stock on order') + 'Backorder'
 +     * If expected delivery date has been adjusted, this will be accounted for as it will only look at the stock required from date of expected delivery to the end of months stock required:  
 + 
 +         * Usage per day = Adjusted AMC/30.4375 (which is from 365.25/12 which is days in the full year) 
 +         * Suggested order quantity = Usage per day x Days needed (which is 'Expected delivery date' - End date of the 'Months stock required', or days needed in total - days of lead time) - ('Effective SOH' - 'Stock on order') + 'Backorder' 
 + 
 +  * This determines the quantity of stock that needs to be ordered to maintain the desired inventory levels after considering current stock, back orders, and stock already on order.  
 +  * Note: if you are using the "Minimum stock" function, the suggested order will also take this into account to ensure that there is enough stock to meet this value. This will be calculated by taking the minimum pack size to cover the minimum stock. 
 +  * Note: if you are using forecasting this can affect suggested order quantity. Please check forecasting settings on mSupply if it is indicated as being used in the spreadsheet. 
 +  * Note: The "maximum" quantity field is only a UI feature and does not have any other functionality apart from allowing users to see their recorded maximum quantity. Anything in this field will not be accounted for in the SOQ report.  
 + 
 +{{:reports:pasted:20240724-234648.png?350}} 
 +{{:reports:pasted:20240724-234725.png?350}} 
 +  * Forecast used : Based on forecasting options under "Usage" in  "Item details" if this has been used or not (yes / no): 
 +{{:reports:pasted:20240724-044232.png?350}} 
 + 
 + 
 +For a more detail guide click on this topic : [[faq:wastage_prediction_due_to_expiry_v7-12|Stock wastage prediction for ordering]].
  
 ===== Suggest order quantities with prices and price extension ===== ===== Suggest order quantities with prices and price extension =====
-This report is an extension of the previous one, allowing you to see what the suggested order will cost. The filter choices you have are the same as for the suggested order quantities report.+This report is an extension of the previous one, allowing you to see what the suggested order will cost. The filter choices you have are the same as for the suggested order quantities report. You get an option to price your suggested order. 
 + 
 +{{ :reports:suggested_order_quant_with_price-2024-02-16-t16-58.png?600 |}} 
 + 
 +Key Column headers : 
 +  * Unit Price : Calculated via the latest price or by supplier quotes or using average prices received during the look back period. The `look back period` is the same setting that is used to calculate average monthly stock usages. 
 +  * Price extension (Suggested) : This is the predicted cost of a future order based on Unit Price.  
 +  * Annual consumption (quantity) : This is the predicted stock usage over a year based on the latest average monthly consumption. 
 +  * Annual consumption (cost) : Potential annual cost based on unit price. 
  
-// Previous: [[reports:transactions|16.03. Transaction reports]]     Next: [[reports:requisitions|16.05. Requisition reports]]//+\\ 
 +\\ 
 +|  //  Previous:  **[[reports:transactions]]** | | Next: **[[reports:requisitions]]** //  |
 ---- struct data ---- ---- struct data ----
 +pagestatus.status    : All Good
 ---- ----
  
  • Last modified: 2019/10/03 09:25
  • by Gary Willetts