Search This Blog

Friday, July 25, 2014

Understanding Cycle count and best practices

Best practices:
•    Oracle provides ABC analysis and “minimum per year” cycle counts based on the ABC value
•    The key here is “minimum per year” counts. The algorithm may cause an  item to be counted more than the number of counts required per year
•    Because the cycle count process is random, you may NOT get an evenly spaced occurrence of counts
•    You have no access to see when an item will be counted during the year
•    If a 4 count a year item is added during the middle of the year, it will still get counted at least 4 times that year
•    Counts are not always evenly spaced during the year
•    You can’t ever know when an item is to be counted
•    Oracle developed the Cycle Count process to pass compliance and adhere to best practices
•    Random  means Random. It doesn’t mean evenly divided. It doesn’t even mean logical.
•    You can defeat the “randomness” by using manual Cycle Counts for every item but then you are missing the point of Cycle Counting
•    Cycle counting is a measure of your inventory accuracy
•    If you manipulate the process and remove the randomness, you will manipulate the accuracy
•    Make sure you have Save output selected in the Request Set when you execute Perform full cycle count request set in the 3 requests in the set
•    Make sure you print to a valid printer
•    You may not want to display system quantity, it could influence a count entry

Some Insights on Cycle Count Formula:
The Oracle site, and some others have the actual formulas used, but then on top of that, there is some rounding formula used that does not seem to be published.
Logic for Cycle Count Auto Schedule (As given in metalink)
The first criteria of selecting the items to schedule, is whether these items are marked as a control group items or not and what is the criterion on which the Cycle count scheduler is being run (Include Control Group Items is checked or not). Based on this the scheduler will select the Control Group Items or Non Control Group Items to schedule counts.
The second criteria is Max items to Schedule, which is defined as:
MaxItemsToSchedule = (TotalItemsInClass * NWorkingDays) /ClassCountInterval + 1;
where,
TotalItemsInClass = the number of items defined in the class
NWorkingDays = BeginDate - EndDate + 1 (this will be printed in the concurrent log file of the scheduler).
ClassCountInterval = NumWorkDaysThisYear / NumCountsPerYear (these will also be printed in the concurrent log file of the scheduler).
Once MaxItemsToSchedule is calculated, these number of items are picked randomly and will get scheduled and will be marked, so that these not picked in the scheduled run.

Now lets consider the following possible cases :
CASE 1
No. of items in class = 100
Counts per year for class = 1
No. of working days in the year = 200 (taken, for easy calculation)
Count Frequency = Daily

Now since the count frequency is 'Daily' you can run the scheduler on every working day.Using the above formula, Maximum Items to schedule = ((100*1*1)/200)+1 = 0+1 = 1 The above formula has integer division and so instead of 0.5+1 we have 0+1.
So, in this case all the 100 items in the class will be counted twice in a year. But, now if you change the count frequency from 'Daily' to 'Weekly' as shown in Case 2.

CASE 2
No. of items in class = 100
Counts per year for class = 1
No. of working days in the year = 200 (taken, for easy calculation)
Count Frequency = Weekly (say 5 work days in a week)
Maximum Items to schedule = ((100*1*5)/200)+1 = 3

Here, all the 100 items will be counted at least once, but some of the items may be counted twice since in our formula we are doing the ROUNDING off.In this case 80 items were counted only once and 20 items got counted twice.

If we do not do the rounding off (using integer division and adding 1), then in the above case we will have 2.5 items to schedule. Now, we can schedule either 2 or 3 items.So, if we schedule 2 items then all the 100 items will not be scheduled at least once (20 items will be left out). So we do the rounding off so that all the items are scheduled at least once.

You can see that by changing the count frequency from 'Daily' to 'Weekly' the number of items that are getting counted twice have been reduced from 100 as in Case 1, to 20 in Case 2. Since we are doing 'Rounding off' in the formula, some items of the class may be counted more than the number of counts specified.But, as I have mentioned before, Counts per year is the minimum guaranteed number of counts per year for all items in the class.

In cases where you have very few items and count frequency is 'Daily', the magnitude of the difference between 'actual number of counts' and 'counts per year specified' will be much higher. In these cases, by changing the count frequency from 'Daily' to 'weekly/period', will reduce the magnitude of difference. Also, we allow the user to change the 'Counts per year' at any point in time in the year. So, once this value is changed then all the items in the class are scheduled afresh,
irrespective of their scheduling before the change of value for counts per year.

The logic for Cycle counting is forward looking.
1. The counts per year for a class ensures that all items in that class are scheduled at least that many items in a year. That is, if the counts per year for a class is 10 and the class has 100 items, then each of the 100 items in the class are scheduled at least 10 times.
2. In cases where you have very few items in the class and have high count frequency (say Daily), there are chances that it will be counted more number of times, then specified in its class. However, in those cases you would ideally like to reduce the count frequency (say, from 'daily' to 'weekly').
3. The counts per year for a class can be changed by the user at a later point in time. Cycle counting does not take into account the number of counts that have already been done before the change of value for 'counts per year'. It now takes into account the new value of 'counts per year' for all the items in the class

5 Comments:

AadvikKumar said...

Thank you budy for your time to explain this, Thank God, I haven't brought my Car here.



Order Management System

Amit said...

Nice Blog

Install Oracle Appsr12 Dump For Better Practice


https://www.olx.in/item/install-oracle-appsr12-dump-at-500-only-ID1bqZlz.html

Siddarth said...

Very good explanation Suresh. Good work sharing your knwoledge.

Meetpalukuru said...

Good info..
you can find oracle fusion videos on below. Please subscribe and share for more updates.
https://youtu.be/fONwvsQ_v0M

Anonymous said...

Does Oracle use Calendar year by default to determine "NWorkingDays"?

Copyright (c) All rights reserved. Presented by Suresh Vaishya