Imagine you have a store and you need to make sure you never run out of popular items, like bread or milk. Safety stock is like having a backup supply just in case more people buy than expected, or if your supplier takes longer to deliver.
In Microsoft Dynamics 365 SCM, there's a tool called the Safety Stock Journal. It looks at how much products you've sold in the past to figure out how much extra you should keep in stock. This helps you avoid running out of things customers want to buy.
The Safety Stock Journal helps you plan how much extra stuff to keep based on what you've sold before. It's like using past sales to predict future needs, so you always have enough on hand.
In my scenario I have been selling cement product for past year and I had 16 lb set as a minimum inventory level. Now, I want to see if I need to adjust this level based my issue history statistics.
For this functionality, we will need to consider a few settings:
Purchase lead time (in my scenario I have set it up on the default order settings, but you can overwrite it on the item coverage). I have 4 days set as lead time.
Minimum inventory quantity. I have 16 pounds.
Historical issue statistic. Let's see what I have in the inventory transactions:
In our scenario, we are interested in issues transactions which are
Sold or
Deducted.
Now it is time to see what system can propose and whether we need to update our existing level of 16 pounds.
Walkthrough:
1. Go to
Master planning > Master planning > Run > Safety stock calculation.
2. On the Action Pane, select
New.
3. On the Journal header details FastTab, select the safety stock journal name.
4. On the Journal lines FastTab, select Create lines.
5. Select the date range:
From date – Select the start date of the period that issues should be included in the calculation for.
To date – Select the end date of the period that issues should be included in this calculation for. There must be at least two months between the start and end dates.
In our scenario we have selected 12 months date range. It is important to notice the number of month you selected here, since it will be used in the calculations later. If you select less than 3 month period, the calculation of new minimum will not be meaningful.
6. Select the product you want to include into calculation
7. Select parameter “
Calculate standard deviation” to calculate the standard deviation and get an indication how variable your historic demand has been.
Once you select OK on the dialog, the system will create a line and calculate some important statistic.
Let's review how the system came up with these numbers.
Average issues per month = Total of issues divided by defined period. In our case, sum of all issues for 12 months = 500 and then 500/12 month period = 41.67
Standard deviation of issues per month indicates how average number of issues of an item per month are spread out from the average. A low standard deviation means that most of the numbers are very close to the average. A high standard deviation means that the numbers are spread out around the average.
Standard deviation is calculated by the following formula (you can find some examples here: https://www.scribbr.com/statistics/standard-deviation/):
Let's calculate our deviation:
You can also check
\Classes\ReqItemJournalCreate\calcStdDeviationPerMonthThis method is calculating the standard deviation per month and populating StdDeviationIssueMonth field on Safety stock journal.
Average issue per lead time indicates the number of stock that we need to carry out through the lead time.
Important note here. Depends on whether you set Working days parameter for your lead time or not, calculation will be different.
If Working days = NO, Average issue per lead time calculation is the following:
Number of days in a month (30 days - hardcoded) divided by lead time. In our scenario 30 days needs to be divided by 4 days lead time. Then Average issue per month divide by the calculated value.
If
Working days = YES, Average issue per lead time calculation is the following:
We cannot take the full month of 30 days, because there are some weekends. So, instead of 30 days, we should take 5/7ths (30 / 7 * 5) = 21.4286 days (hardcoded value).
Number of days in a month 21.4286) divided by lead time. In our scenario 21.4286 days needs to be divided by 4 days lead time. Then Average issue per month divide by the calculated value.
In my scenario, to validate it, I went back on the item and updated Working days to YES and I had to create the line from scratch to consider this new parameter.
Now we know how these 3 fields are calculated.
Let's see what will the system propose as a new minimum level.
On the Journal lines FastTab, select Calculate proposal.
You have to choose the method from 2 which are available:
- Use average issue during lead time. Calculated minimum quantity values based on the average issue during the specified period.
- Use service level. Calculated minimum quantity values based on the desired service level
Use average issue during lead time. This is the most commonly used.
Multiplication factor. You can set this factor if you see for example hurricane is coming and you expect more demand so that you will require to carry more stock. For example, enter 1.0 to use the exact calculated average or 1.1 to add an extra buffer of 10 percent.
Lead time margin – Enter a value to extend the normal lead time by (for example, to allow for administration).
When you select this method the calculation will be the following.
If Working days parameter set to NO.
If Multiplication factor is set then the result is multiplied by multiplication factor. In our case it was set to 10.
Use service level.
When you select this method the calculation will be the following.
In order to understand the service levels you need to see the hard coded safety factors – these are in the code and are considered standard factors associated with % service levels.
So the formula will be the following:
If we select the service level of 98, the safety factor will be different:
As soon as you ready, you can set new minimum quantity field and select Post button. This will update minimum field in the item coverage.
That's it for today.