Set customer pricing based on cost
Any idea how to set customer specific pricing based on the average cost of an item?
Example: we sell to some customers at a reduced rate of the cost + 15% regardless of general price and do not want to have to update a price group every time an average cost changes.
You could go to the Sales Price Worksheets (AR202010) screen and use the COPY PRICES button to quickly fill the screen with all of the existing prices.
Then you could use the CALCULATE PENDING PRICES button to recalculate the prices as a percentage of average cost.
But you do have to go and do this. The price won't update automatically.
Wouldn't it make sense though to update prices on some kind of cadence rather than every average cost adjustment triggering an updated price. Consider the scenario where the Salesperson is on the phone with a customer and gives them a price of $150. 2 minutes later the Receiving department receives inventory at a higher cost, bringing the average cost up to $200. 1 minute after that the Salesperson gets a phone call from another customer and all of a sudden has to quote the $200 price. A $50 swing in a matter of minutes seems weird doesn't it?
What if you instead updated pricing weekly or monthly, setting the effective dates when you update the pricing? Then the Sales team would understand when prices could change rather than getting hit unexpectedly.
CALCULATE PENDING PRICES has great functionality i wasn't aware of, so thanks for that!
In terms of what makes sense as a pricing model, usually it would work best to have set prices for the obvious reasons you described. But in our case for example, we have both a purchasing and sales relationship with other companies and we sell products we both carry at cost plus 15% regardless of our regular catalog price.
If i were to use the CALCULATE PENDING PRICES functions i would have to recalculate pending prices upon receipt of any stock item - not very doable unfortunately.
Ah, that scenario makes sense. As far as I know, you would need a customization to make what you want happen. Might be worth looking into though because I have a feeling that it will be a small customization.
What direction is your 'feeling' at for the customization:)? Trigger on each release of inventory receipt to update a set pricing group? Customize the default price on sales or calculation at real time perhaps?
I was thinking to customize the Sales Order screen to override the Unit Price calculation to calculate based on cost markup and completely bypass the pricing logic.
But your idea would work too.
Ah but then it would not work for sales order imports i believe.
OK thanks for the ideas.
It should still work for an import, regardless of whether you are importing with an Import Scenario or with the REST API because the import process respects the screen logic, even the custom screen logic. It just wouldn't work on another screen like if you want to enter an AR Invoice directly. That screen would have to be customized too.
So maybe your idea is better 🙂
I am doing something similar for a customer except they are using standard cost and not average. The process I worked out for them is that when they get cost changes from their vendors, the information is put into a spreadsheet. That spreadsheet is then used 3 times.
First the spreadsheet is created from a Report Designer report I wrote that reports Stock Items that are bought from a specific vendor. The columns on the report are the items that are needed for the processes that follow. The end user then has to bring in the new vendor costs to the appropriate column in the spreadsheet.
The next step is to upload that spreadsheet into Vendor Prices for that vendor. This is very straight forward.
The third step is to use that spreadsheet as input into an Import Scenario that updates Standard Costs (this step is optional if they don't want to update the standard cost at that time).
Finally we use the same spreadsheet to upload to a sales price worksheet as the base price, then use the Calculate Pending Prices function and calculate based on Standard Price + Markup %. This calculates the new sales prices.
I realize this isn't exactly what you want, but maybe you can write a report designer report that calculates the price for customer based on average cost then use that to upload into the sales price worksheet for a Customer price, then publish the prices.
What if you use the min markup percentage in the stock item and leverage the minimum markup validation in sales order option? You would be creating a "standard rule" that manages the exceptions and actually applies to only a subset of customers. All other customers not subject to the cost +15% would be managed with sales prices which would be changing far less frequently.
Couple of assumptions here:
1. You do not have any sales prices for the customers who need the 15% markup applied. If you do, you can set the system to ignore the validation rule based on the price type.
2. You would create sales prices for the other customers, items, classes as needed and ignore the validation as needed.
Now, you would set the default price of the item to zero (this is critical as described below) and then specify a min markup of 15%. You may also want to set the markup % to the 15% as well so Acumatica can perform the gross margin validation without giving you a warning since it cannot calucate from zero:
In the sales order preferences, in price settings, you would set the validate min. markup as "set to minimum":
The set to minimum perofrms the following: The system will automatically set the price to the value with the minimum markup when a user enters a pending price that is lower than the price plus the minimum markup. Becuase we set the default price to zero, we would be "entering a pending proce below the minimum markup, so the system would set the price as follows. The minimum markup price for a stock item is calculated as
Average Cost * (Min Markup% / 100); the minimal markup price for a non-stock item is calculated as
Current Cost * (Min Markup% / 100).
Now when I enter the item on the sales order, the system will use the above calcuation to set the unit price on the order:
On an order where a customer, item, class or promotional price is applicable, that price will be sourced to the order:
Does this potentially work to solve this issue?
Tested and it works. This is brilliant.
Unfortunately in my case i do need to use the default price, but otherwise would apply this method.
Technically yes, but you then loos the option to simply view the price of an item on the stock item screen>price/cost tab
I ended up creating business event that will update a specific price class whenever the item's average cost changes.
One issue we still have is that sometimes an order is created at a certain price but back ordered, and by the time the items arrive the average cost changes. The manual workaround is to recalculate prices for that order.
For anyone looking to customize/extend the sales price calculation process, ARSalesPriceMaint is the graph that needs to be extended, and CalculateSalesPrice is the function that deals with price calc -- it could be modified to look at last cost or standard cost + a configurable markup instead