top of page

Business Central Inventory GL Entries - Sales

  • Writer: Ken Sebahar
    Ken Sebahar
  • Aug 15
  • 6 min read

Updated: Oct 9

In an earlier post, Business Central Inventory GL Entries - Purchases, we walked through an example demonstrating how Business Central uses Posting Groups to determine the G/L Entry records that get created when posting purchase documents including Purchase Receipts, Purchase Invoices, and Purchase Invoices for Item Charges. We reviewed how the Inventory Setup settings determine when G/L Entry records are created and then explained the specific Posting Groups and fields that are used to determine which G/L Accounts are debited and credited during each G/L Entry.


In this post, we will continue the same example and walk through the G/L Entries that get created when Sales documents are posted including Sales Shipments, Sales Invoices, and Sales Invoices for Item Charges.


For an overview of Posting Group setup provided by Microsoft on Microsoft Learn, please refer to Set up posting groups.


Background and Assumptions


The G/L Entries detailed below are all generated within Business Central in real-time as each transaction is posted due to the following setups on the Inventory Setup page:


The fields on the Inventory Setup page within Business Central that control how and when associated G/L Entry records are posted, including "Automatic Cost Posting", "Expected Cost Posting to G/L", and "Automatic Cost Adjustment".
Inventory G/L posting settings on the Inventory Setup page

Before we begin processing the Sales Order, let's review the current on-hand quantity and unit cost for the Cronus Brewery koozies we will be selling to the customer:


The Item Card page in Business Central showing the Inventory fast tab where Quantity on Hand, Qty. On Purch. Order and Qty. on Sales Order can be viewed.
The Item Card page showing 2,000 koozies in on-hand inventory

The Costs & Posting fast tab for the Item Card in Business Central showing the "Costing Method", "Unit Cost", "Last Direct Cost", and other cost-related posting fieds.
The Costs & Posting fast tab showing the current Unit Cost of $1.15

The Item Ledger Entries page in Business Central showing the open cost layers, remaining quantities, and cost values.
The Item Ledger Entries page showing the open cost layers and "Cost Amount" values

April 1, 2025


The new Sales Order shown below is created to sell 100 koozies for $2,50 EA, for a total expected sales amount of $2,500.00. There will also be a shipping charge invoiced to the customer for $25.00 and this will be processed as an Item Charge when invoicing the Sales Order.

 

No G/L Entry records are created when the Sales Order is created.


Note: in the screenshot below, the "Unit Cost ($)" has been added to the page to show that the original cost associated with the koozies is set to $1.05 which is the current "Unit Cost" on the Item Card when the new Sales Order is created.


The Sales Order page in Business Central showing 100 koozies being sold to Cannon Group including a $25.00 Item Charge for shipping charges.
Sales Order to sell 100 koozies to Cannon Group

April 9, 2025


The Sales Shipment is posted for the 100 koozies and the Item Charges.

 

Two separate G/L Registers are posted containing the following G/L Entries:


Entry #1


The Expected Cost posting entry created when the sales order is shipped.  This entry will debit "COGS (Interim)" G/L Account and credit the "Inventory (Interim)" G/L Account.
To post an interim inventory entry reflecting that inventory is no longer on-hand

  • Debit: General Posting Setup - “COGS (Interim)”

    • Based on the combination of Gen. Bus. Posting Group assigned to the Customer and the Gen. Prod. Posting Group assigned to the Item.

    • Typically defined as an Asset type G/L Account. The type of G/L Account used here can be misleading since the setup table labels this field "COGS (Interim)", However, since the other side of this entry is the "Inventory (Interim)" account on the balance sheet and no G/L Entry is created to record the expected Sales amount, the "COGS (Interim)" account should be set up as a balance sheet account. To improve the clarity of the entries being made, the G/L Account used as the "COGS (Interim)" account can be labeled "Inventory Shipped not Invoiced" (or something similar).


  • Credit: Inventory Posting Setup – “Inventory Account (Interim)”

    • Based on the Inventory Posting Group assigned to the Item. 

    • Typically defined as an Asset type G/L Account.


Entry #2


This entry is the cost adjustment entry created by the "Adjust Cost - Item Entries" process to project the actual cost to be posted when the Sales Order is invoiced.
The Cost Adjustment G/L Entries created during Sales shipment posting

This entry will use the same setups as Entry #1 above, however, which G/L Account is debited and which is credit will depend on whether the value in the "Unit Cost" field on the Sales Order line is greater than or less than the expected FIFO cost layer to actually be applied when the Sales Invoice is posted.


In this example, the Adjust Cost process applies the oldest (FIFO) cost layer to the sales entry and therefore adjusting entries are posted to arrive at the expected cost of $0.95 EA.


April 12, 2025


The Sales Order is invoiced, resulting in a Posted Sales Invoice for $275.00.


Three separate G/L Registers are posted containing the following G/L Entries:


Entry #3


The entry to adjust inventory when a Sales Order is invoiced is effectively two entries in one. The first entry is to reverse the original expected cost (interim) entry and also book the Cost of Goods Sold while reducing the "Inventory" value.
To reverse the Interim entry and post actual COGS while reducing inventory

This entry effectively is two entries in one: the first entry made is the exact reversal of the "Interim" entries created during the sales shipment posting process. The second entry is to recognize Cost of Goods Sold and reduce the value of on-hand inventory. Unfortunately, as you can see above, the order in which these G/L Entries are created makes it less obvious what is happening with these entries.


Based on the entry shown above, the entries are:


  • Debit: Inventory Posting Setup – “Inventory Account (Interim)”

    • Based on the Inventory Posting Group assigned to the Item. 

    • Typically defined as an Asset type G/L Account.


  • Credit: Inventory Posting Setup – “Inventory Account"

    • Based on the Inventory Posting Group assigned to the Item. 

    • Typically defined as an Asset type G/L Account.


  • Debit: General Posting Setup - "COGS Account"

    • Based on the combination of Gen. Bus. Posting Group assigned to the Customer and the Gen. Prod. Posting Group assigned to the Item.

    • Typically defined as a Cost of Goods Sold type G/L Account.


  • Credit: General Posting Setup - “COGS (Interim)”

    • Based on the combination of Gen. Bus. Posting Group assigned to the Customer and the Gen. Prod. Posting Group assigned to the Item.

    • Typically defined as an Asset type G/L Account.


Entry #4


This entry is created when the Sales Order is invoiced. This entry increases Accounts Receivable and also increases revenue (or "Sales") based on the amounts invoiced to the customer.
To increase Accounts Receivable and record sales revenue

In this example above, there are two credits because the Item and the Item Charge were set up with different Gen. Prod. Posting Groups which used two different "Sales Accounts".


  • Debit: Customer Posting Groups - "Receivables Account"

    • Based on the Customer Posting Group assigned to the Customer. (Note: Business Central includes a feature whereby the Customer Posting Group can be modified on each sales transaction, so the source could be the Sales Invoice header)

    • Typically defined as an Asset type G/L Account.


  • Credit: General Posting Setup - "Sales Account"

    • Based on the combination of Gen. Bus. Posting Group assigned to the Customer and the Gen. Prod. Posting Group assigned to the Item or the Item Charge.

    • Typically defined as a Sales (Revenue) type G/L Account.


Entry #5


This final entry is created by the "Adjust Cost - Item Entries" process and is the entry to finalize the cost layer application and record the actual COGS and Inventory values.
To finalize the actual Cost of Goods Sold and inventory adjustments to ensure inventory is fully reconciled to the General Ledger

This final cost adjustment entry made via the "Adjust Cost - Item Entries" process could be thought of as additional G/L Entries that are part of Entry #3 above. However, as you can see by the "Entry No." values assigned to the G/L Entry records, Business Central generates a separate G/L Register to record this final entry. This entry is the adjustment required to properly record the actual cost to be assigned to COGS and the actual cost impact to the inventory valuation.


Which G/L Account below is debited and which G/L Account is credited depends on whether the actual/final cost is higher than or lower than the original estimated (Interim) cost amounts posted.


In this specific G/L Register, the entries increase inventory and reduce the COGS amount because the actual cost ($0.95/EA) is lower than the expected/Interim cost amount ($1.05/EA):


  • Debit: Inventory Posting Setup – “Inventory Account"

    • Based on the Inventory Posting Group assigned to the Item. 

    • Typically defined as an Asset type G/L Account.


  • Credit: General Posting Setup - "COGS Account"

    • Based on the combination of Gen. Bus. Posting Group assigned to the Customer and the Gen. Prod. Posting Group assigned to the Item.

    • Typically defined as a Cost of Goods Sold type G/L Account.


Summary and Takeaways

When expected cost posting is enabled and real-time cost adjustments are enabled on the Inventory Setup page, Business Central builds G/L Entries to ensure that the Inventory Valuation and related cost accounts on the income statement are as accurate as possible based on the existing information in the system.


The result is that Inventory remains fully reconciled to the General Ledger at all times - as of any day of the month!


Take your financial setups to the next level by making sure you are familiar with other suggestions I have provided in this previous post: 10 Best Practices for Financial Setups in Microsoft Dynamics 365 Business Central.

Subscribe_edited.jpg

Provide your email address and name to the right to receive email notifications when updates and new blog posts are available. 

Maximize the potential of your Business Central environment!

Thank you for subscribing!

© 2023 Speaking Business Central

bottom of page