Ordering Philosophy
Revised June 2010
RxOne is designed to look after the interests of the pharmacy alone and wholesaler's interests are not taken into account except for some rounding of quantities for easier handling... Eg, if the ideal order would be 7 of an item, it will order 6, and instead of 11 it would order 12, as that is more convenient for everyone. Whole packs are ordered when economic for the pharmacy.
Allowance is made for;
current sales levels
trends of sales patterns
changes in seasons, including sudden surges
fad or 'craze' products,
cost of capital,
cost of stock holding,
risk of obsolescence,
loss of goodwill that would be caused by being o/s,
cash flow and liquidity requirements
and many other factors.
The formulae used are those refined in around 3000 sites over periods of up to sixteen years. Experience in those sites has shown that stock performance, following the computer's suggested quantities, will be around 25% better than that achieved by the best of human buyers, and 15% better than computer systems based on max/min stock levels.
Re-order point
This is not fixed, but is continuously recalculated. It is the point at which the cost of holding more of the item becomes less than the benefits gained. Eg, The profit on a sale that might otherwise be missed through being o/s is greater than the cost of holding more stock.
At the end of the month it will tolerate lower stocks for a few days in an attempt to squeeze over the end of the month.
It will never discontinue an item itself, (the user should untick the 'reorder' box if they want this) but will reduce it to the a minimum of one item if the item sells slowly enough.
Re-order quantity
Orders can be created for "General wholesaler" or "Direct supplier".
'General' orders buy enough to last almost until the 'End of the Billing Period', (which defaults to the last day of the month, though this can be user specified), but ONLY on those items which have reached the point where more is needed right now. This type of order should always be used for general wholesalers from whom orders will normally be placed every day or so.
'Direct' orders ask the period to order for. This should be the time until the next order, usually four weeks. This type of order is used for direct suppliers who are ordered from every few weeks, or every month or every few months. An efficient method is to tell the computer to bring the SoH up to 5 weeks stock at the start of each month regardless of the cycle of the representative's visits. If the stock is held lower than the user likes, increase the specified period to 5.5 or 6 weeks. Or reduce to 4.5 or 4.2 weeks etc. (but be careful with reducing it below 5 weeks as this risks many items being out of stock). 'Direct orders' should never be used for suppliers from which the pharmacy buys every few days, as this seriously disrupts the orders... use 'general orders' for those.
Once the order period is known, the computer will make up a suggested order to run out at the time shown. A small amount of buffer stock is added to appropriate items.
Price breaks for discounts
Often there are discounts if a 'round' amount such as 3, 6, 12 etc is ordered, and the system will order like this whenever it is economic to do so to get extra discounts and save handling and out-of-stock risk. However, it is frequently better to buy on a sell one - buy one' basis, and the machine is able to make this decision correctly;
Example
Suppose an item costs $10.00, retails for $15.00 and sells only once every four months. Most pharmacies have several thousand items with this rate of sale. Suppose it attracts a 10% discount if ordered in RxOne of three.
If managed on a 'sell one - buy one' cost of a year's supply is $30, a year's retail is $45, and a year's markup is $15, and the average stockholding is $10 so 150% return on Investment.
If 3 x are purchased to get the 10% discount the cost of a year's supply is $27, the year's retail is still $45, so the year's markup is $18. The average stockholding is $18 (Average SoH = 2), giving a return on investment of 100%. This is not as good as the 150% from 'sell one - buy one'.
It is better to 'sell one - buy one' and use the cash elsewhere to generate higher returns on other items. The risk of shrinkage and obsolescence is also reduced. It better not to round up the quantity to get a discount .
Capital availability
If a business is either unusually short of capital, or has plenty, the user can instruct the computer to order accordingly by altering the liquidity setting. The software takes this into account when deciding on the quantity to order, extracting the maximum economic benefit depending on the user's financial situation. See topic below for 'Liquidity' setting considerations.
Seasonal surge
A few pharmacies have a typical pharmacy sales pattern for most of a year but atypical at other times eg a seaside resort town has a normal pattern for the six months April to September, but then in December the sales are three times the average, and in January five times the average. February is back to two to three times the average. This is a big variation. RxOne will handle this summer surge and subsequent plunge; the computer will automatically detect a surge (or plunge) month coming up. When the surge/plunge is detected it causes the ‘Expected sales’ to be much more heavily weighted towards what happened last year. Thus on 1st Jan 2010 it will set most 'Expected sales’ to what happened in Jan09. This increases the SoH re-order trigger point, and the order quantities on the items that had heavy sales in Jan09. But it is not an across- the-board increase in orders, as it is still individualized… things like Buccaline Berna which did not sell much in Jan09 won’t have their orders increased, and the stock already on hand is still taken fully into account for all items. This makes a big difference for places with such seasonal variation.
Harvey's Comments
Forecasting is 95% accurate. If the forecasting was 100% accurate and goods available in whatever quantity the machine wanted, it could order exactly the right amount. But because of random fluctuations it is a probability game...so it is calculating the odds of a particular item selling on a particular day and selecting the best balance of return on capital against the extra labour of ‘owes’ and risk of lost sales due to o/s. This is what a knowledgeable human buyer does without realising it.
EoM ‘owes’. The ideal point for this balance depends on one’s cash availability, thus someone who is very tight for cash will want to go off the end of the month with minimum SoH and doesn't mind extra work to get it, so will prefer a lower SoH with more owes and many small orders, as it goes for just enough stock to carry over the EoM. But someone who is well capitalised will want a larger SoH over the end of month to get less o/s. The liquidity setting is provided so you can tell it where to set the balance for you. I’d suggest raising it perhaps 5 units at a time until it does what you want. But note, while this will reduce o/s at EoM, it won't eliminate them... there is an ideal level of o/s which is small, but never zero (even if you doubled your stock of every item, you would still have some o/s and pay a big price in reduced R.o.I. and extra dead stock).
So increase your liquidity setting and see if that helps.
Large Start of Month orders. The machine does not know what your storage availability is, it only knows ideal economic quantity to order. So it orders that. The way this works is that when you use a particular item for the first time during the new month, it works out the quantity that (together with the SoH still on the shelves) will last until 7 or 10 days into the next month, thus meaning that you will go off the end of the month with 7 to 10 days of SoH if the sales are as predicted. This quantity gives the maximum economic benefit as there may be an outer discount (you never get a better price buying on 50 than 100, but sometimes you do the other way around), it involves the minimum handling to check it off and put away once, and it reduces the chance of an o/s for a large random sale at no economic cost. If it is uncertain as to the reliability of the demand (as with a fairly new product) then it will go lighter and buy enough for a few weeks then see how it goes and get the remainder of the month’s supply later when it can see how it is going.
This may result in a quantity that is too big for your shelves of course. I’ll think about possible solutions for this... can you have a think too? It may be a better use of a store-room to have it filled at start of month with dispensary stock and emptied by EoM than have it occupied by last year’s failed shampoo sale.
Rare meds RxOne has a mechanism to cover the rare med with a stat user every 3 months, by looking for products which have a history like “ 0 – 0 – 90 – 0 – 0 – 180 – 0”, and if it sees that there are many zero months, and the non-zero months are the same quantity (or a multiple) then it assumes that the item needs to be kept in that quantity (90 in the above case). But some usage is too random for this to detect, and a pattern on “ 20 - 0 – 0 – 90 – 15 – 0 - 180 – 0 – 0 – 0” won’t trigger that mechanism. The regular patients on stat dispensing's of rare drugs are the reason that the ‘min SoH’ was provided, and few pharmacies will have more than 20 or 30 of those so that won't degrade the overall stock control. This situation is probably the only legitimate use of ‘min SoH’. One-off rare stats from one-off patients will (and should have) owes, unless you have a policy decision to hold a stat quantity of perhaps 1000 drugs and are willing to have 950 of those expire, which may be worthwhile from a customer service perspective (that’s a management decision) but not a economic one (better to do the extra work of an owe and courier the balance).
And remember, in all these cases it is just playing the odds... I used to refer to it as ‘playing poker with 20,000 cards’. It deliberately has some o/s items because the cost of avoiding them is higher than the cost of having them. Typically the maximum profits come from having around 1% of sales lost to o/s or delayed by an ‘owe’.
Strictly speaking the ideal economic holding is usually closer to 2% o/s, but its allowing for the ‘customer annoyance’ cost being as big as the lost profit from the missed sale when o/s and thus goes for around 1% (depending on the liquidity setting).
Users often see an o/s as evidence that insufficient was ordered, but we found by experiment that the cost of reducing the o/s from 1% of sales to 0.5% is to double the stock from say $250k to $500k (with resultant large increase in dead stock), so that isn't the solution. And it already looks at the SoH on every sale/dispensing and reconsiders whether more should be ordered to avoid an owe, which is why there are small top-ups of 36 Betaloc on 29th May even through it knows you will need 1000 on 1st June.
Even the best poker player will lose some hands, but you’ll not beat them over a session of play. Likewise with RxOne ordering... there will be o/s items, owes, and over ordered items ‘coz it only has 95% accurate foresight. But neither is a person always right. The best player is the one who wins the most hands but they will lose some along the way.