Sellable Days: Dynamics 365 Finance and Operations

If you’re implementing Dynamics 365 Finance and Operations and you have products that are batch tracked and can expire, it is important to understand the sellable days functionality.

The sellable days functionality ensures that expired (often referred to as “short dated”) product is not shipped to customers and when product is shipped to customers, they have enough “sellable days” from the time the product is expected to reach the customer.

In this post we will look at the setup required to enable the sellable days feature as well as some examples that will illustrate the functionality.


The first step is to define your sellable days against a customer record. As of now, Microsoft does not provide a standard data entity to load this data so you can either do it manually as I will show, or you can develop a custom data entity to load this data.

Navigate to Sales and marketing > Customers > All customers. Click the “Sell” tab in the ribbon and click the “Setup” button. In the dropdown select “Sellable days”.

Here you can define the customer’s sellable days for all products, a group of products (item group), or a specific product. Sellable days is the minimum number of days that the customer requires to sell the product before the batch expires. Sellable days is based on the requested (or confirmed if defined) receipt date for that product on the sales order. So, in the example below the customer requires at least 100 sellable days from the date they receive the product. We will see an example later in this post.

To create a sellable days record, click the “New” button. In the “Item code” field select “table” if you are defining sellable days for a specific product, select “group” if you are defining sellable days for an item group, or select “All” if the sellable days applies for all products for this customer.

For sellable days to work the item must have the “FEFO date-controlled” flag selected on the item model group associated with the item. If this flag is not enabled the sellable days will be ignored by the system.

Sellable Days Functionality Examples

In this example I have created a sales order for the customer where we set up the sellable days. I have also set the requested receipt date to be 6/30/2021.

Now we can see which batches are available for reservation by clicking the “Inventory” dropdown in the lines section and clicking “Batch reservation”.

On the batch reservation form we can see that we have a batch with an expiration date of 11/28/2021. This means that for this batch when the customer receives the product, they will have 151 days to sell the product before it expires. You can think about it like this:

sellable days = Expiration date – Requested (or confirmed if defined) receipt date

Now let’s change the requested receipt date to 8/30/2021 and go back to the batch reservation form.

Now we can see that the batch is no longer available because if the product arrives on 8/30/2021 and it expires on 11/28/2021 the customer would only have 90 days to sell the product before it expires so the system does not allow us to reserve that batch to the sales order.

Master Planning

Master planning can also take sellable days into account when netting requirements. If we take the example above, we can see the impact on master planning. In order for master planning to take sellable days into account we need to enable the “Use shelf life dates” on the master plan. To get to the master plan navigate to Master planning > Setup > Plans > Master plans.

Now if after we run master planning and look at net requirements for the product, we can see master planning has netted the on-hand quantity to an “Expired batch” and created a planned purchase order to cover the sales order demand. This is because the master planning engine saw that for the requested receipt date on the sales order and the expiration date for the only batch available, it would violate the customer’s sellable days requirement.

What If I Need to Ship Expired Product?

There may be cases where you may actually need to ship expired or short dated product for various reasons. For example, some companies that deal with drugs, or chemicals send the short dated product out to be destroyed. In this case you would want to be able to reserve, pick, and ship the product to send to an entity that destroys the product. Unfortunately, the only way I have found to do this is to write a small modification to allow negative sellable days at the order line level. This will allow you to pick and ship short dated product in cases where product needs to be shipped to a company that specializes in destroying hazardous material.


The sellable days functionality is an extremely useful feature to help control product that has sensitive expiration requirements. The shortcoming in my opinion is the fact that there is no standard data entity, and you have to manually configure sellable days for each customer. However, Microsoft is frequently adding new data entities so maybe this will be one they add in the future. If you have requirements for shipping short dated product you may also need to think about a modification to cover this requirement.

Tim Woods

Tim has been an AX/D365 Finance and Operations Consultant for over a decade and loves to share insights and knowledge from multiple full cycle implementations.

Recent Posts