Why You Should Set Automatic Cost Adjustment to Never in Dynamics 365 Business Central


This was one of the topics that came up frequently while working with users at the last NAV/BC User Group Summit at Phoenix.

Many people have different opinion to setup their inventory so costing is done properly. Naturally, knowing a few things on how Dynamics 365 Business Central (aka Dynamics NAV) inventory and how inventory costing works, I participated as much of these inventory costing discussions as I could.

One of the features that I always get in an intense discussion on is how the Automatic Cost Adjustment on the Inventory Setup should be done.

Arguments for Setting Automatic Cost Adjustment to Always

I do understand the desire to want to set this property to Always. And why not? Instead of running the Adjust Cost – Item Entries manually, why not let the system run the process every time? And I do mean Every. Single. Time.

Setting the Automatic Cost Adjustment to Always allows for you to have updated and accurate cost at all times. This sounds great!

Arguments Against setting the Automatic Cost Adjustment

It’s great if we can just talk about all the benefits and call it a day. But that’s now we work. Setting this property will come at a cost.

  • Performance – During posting, your users will experience delays. How significant this is will depend on how large your database is.
  • Locking issues – Dynamics Business Central will lock the ledger entry tables during posting of orders. In addition, it will lock tables when it runs the adjust cost process. Because of the stress on the performance above, the users will experience more locking problems throughout the day as people are posting. If you’re experiencing this now, try setting the Automatic Cost Adjustment to Never.
  • Allow Posting From Error – There are some instances where the adjust cost will want to post adjustments into prior periods. Depending on what you setup for your Allow Posting From on the General Ledger Setup and/or on the User Setup, you’ll run into these errors.

If you’re running a micro business with few inventory transactions, setting it to Always will make sense.

However, for a manufacturer or a high transactional volume distributor, you will cause more harm to your environment than not.

This is exponentiated if you’re using reservation or serial/lot tracking.

The Alternative

Instead of running the Adjust Cost – Item Entries process during every single transaction posting. Why not have the process run during off hours?

One of the first things we do for our client after explaining the importance of Adjust Cost – Item Entries is to setup the adjust cost process as job queue to be ran at night when the load on the system is light.

This will prevent locking up users as well as give the system a faster response when they’re doing their daily task. Who doesn’t want a system that’s responsive and allow you to do as much as possible within a shorter amount of time?


In every instance, I will set the Adjust Cost process to be ran automatically on the job queue. I want to give the user the best possible experience working with the system. Every delay causes frustration and we can all use less frustration in our lives.

20 thoughts on “Why You Should Set Automatic Cost Adjustment to Never in Dynamics 365 Business Central

  1. ian says:

    If the adjust costs runs overnight what will happen to transactions that posted with the potentially incorrect costs? Will they update also?

  2. Arjan de Groot says:

    I don’t think this setting to Never solves your 3rd argument.
    Also when you run the process via the job queue, the system may want to post the adjustments in a prior period.

  3. Alex Chow says:

    This is why the Allow Posting From field on the General Ledger Setup is so important. You need to change this even if you change the Automatic Cost Adjustment to Always because adjust cost process will always back date to the date of the Allow Posting From.

  4. Arjan de says:

    Hi Alex, I agree that the “Allow posting from” is important. It is just not an argument to choose either Never or Always. And if the job queue is carried out by a certain NAS instance you need to be aware of the settings of this “user” in the Setup as well.

    There however is a solution for these prior postings by configuring “Inventory periods” and closing these. If you apply this functionality, the adjustment postings will be carried out on the first date in an open inventory period.

  5. Alex Chow says:

    Coincidentally, I wrote another blog article on why you don’t need to use the Inventory Periods functionality in NAV.

    There are a million different ways you can implement NAV/BC for your customers. I prefer to implement them using the simplest way possible. At the end of the day, they need to be responsible for their system. The less steps/potential problems they encounter the better.

  6. Tran Hang says:

    I had probem where I could not continue run ADJUST COST-ITEM ENTRIES. I could see it comes from one item, but I do not know how to settle it. Someone can help me?

  7. Raksha says:

    Any recommendation for a 24/7 manufacturing company where items(3000+) is tracked with combo of lot# as well as serial#? costing method= FIFO and Specific.

  8. Andy says:

    Just wondering, have you changed your thoughts since this article was written? The reason I am asking is because back in the NAV days performance issues was a big reason to set it to Never, but since Business Central performance is much better, does the same reason apply?

  9. Alex Chow says:

    My opinion still unchanged. I set this to never and just setup report 795 to run automatically every night. It won’t matter how good the system is. If a process is inefficient, the users WILL feel it. The goal for the daily users is to process their daily transactions quickly. I prefer for the user to not have to “wait” for another process to finish when they’re posting a sales or production order.

    When the database is small, no one will care. I just don’t want it to become a problem later. I prefer to set this up right from the beginning so we don’t have to deal with it down the line.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.