Skip to Content
Personal Insights
Author's profile photo Ravi Dave

Balance Inventory or Running Inventory in SAP

Introduction: In this blog, I will try to demonstrate on how to achieve balance inventory or running inventory requirements in SAP.

  • There are often times when buyers, sellers, and planners required visibility of Balance Inventory or Running Inventory.
  • Balance Inventory Or Running Inventory is the inventory that should exist after transaction posting.
  • It is a very helpful tool for the organization’s resources to troubleshoot MRP and ATP issues.

Standard SAP options:

Below are the standard SAP options that were explored:

  • Standard SAP has t-code: MB5B (Fiori tile: Stocks for posting date) which gives inventory position at the posting date. The requirement is to have it at every transaction level.
  • SAP has another t-code: S_P00_07000139 (Fiori tile: Prepare Stock Reports) which was also explored as a solution, but it doesn’t consider all the movements, and the “Balance Quantity” value on that report can be misleading.

Solution Approach/Design:

  • Standard SAP has t-code: MB51(Fiori tile: Display Material Document List) which was enhanced to  (Report: RM07DOCS, Enhancement: ZMM_EN_IMP_RM07DOCS) to include an additional field: Balance Inventory, and below is a high-level solution approach.
  • Variant will be created for material, plant, Entry Date, and Time which will be sorted in descending order.
  • Consider all the records for that plant/material where the storage location is not blank.
  • If the storage location is blank, then carry the quantity (MSEG-MENGE) from the previous record. If it’s the first record, then keep the value blank or 0.
  • Do the sum from Bottom to top for that plant/material combination.
  • For example, as shown below, when the storage location is blank, we are coping with Balance Inventory values from the previous record for that Material/Plant combination.
Material Plant Entry Date Entry Time Storage Location Movement Type Special Stock Qty Unit Balance Inventory
102681 1000 9/22/2020 17:57:16 1000 641 -200 LB 225.989
102681 1000 6/9/2020 15:16:06 1000 601 -173 LB 425.989
102681 1000 5/25/2020 13:31:57 1000 101 598.989 LB 598.989
102681 1000 5/14/2020 18:39:02 641 598.989 LB 0
102681 1010 9/22/2020 17:58:13 1000 101 200 LB 283.996
102681 1010 9/22/2020 17:57:16 641 200 LB 83.996
102681 1010 5/14/2020 18:39:02 1000 641 -598.989 LB 83.996
102681 1010 5/8/2020 14:44:18 1000 101 682.985 LB 682.985
102681 1010 4/1/2020 16:05:03 1000 601 -170.196 LB 0
102681 1010 4/1/2020 16:00:51 1000 601 -334.882 LB 170.196
102681 1010 3/31/2020 9:34:42 1000 101 505.078 LB 505.078
102681 1010 3/5/2020 17:05:04 1000 601 E -165.786 LB 0
102681 1010 3/3/2020 15:36:55 1000 101 E 165.786 LB 165.786

By Skipping records that have blank storage locations will address the design/solution for the  below issue:

  • When PGI happens for STO replenishment outbound delivery, the system creates movement type: 641 entry on receiving plant with a blank storage location. We don’t need to calculate that because when we perform MVT#101, we are calculating inventory as inbound. For example, as shown below


Material Document List

  • When we perform GR for drop shipment PO, the system performs MVT #101 with a blank storage location. Dropship receipt has to be excluded from Balance Inventory because those are account-assigned PO(s) for which anyways inventory doesn’t come to the plant and there is no shipping movement (MVT #601). By not including a blank storage location record, we can skip the dropship receipt. For example,

Material Document List

  • For customer consignment fill up (MVT # 631) also system creates a material document with 2 lines (one with storage location and one without storage location). We will include the only one which has a storage location. By skipping without storage location will eliminate double counting.
  • For customer consignment issues (MVT # 633), the system creates material documents without storage location (as inventory gets consumed from the customer location). We don’t need to include this movement in the report because we already considered consignment fill-up (MVT#631). For example

  • Customer Consignment Return (MVT#632). This means we are bringing the customer consignment inventory back to Plant. The system creates 2 lines in the material document. We will include the only one which has a storage location. By skipping without storage location will eliminate double counting.

Results after Implementing the solution:

  • MB52 Layout: where the layout is been set up to display based on the Descending Order.


Layout Creation


Default Layout


Balance Inventory in Output


  • Running Inventory or Balance inventory can be achieved by enhancing T-code: MB51 (Fiori tile: Display Material Documents).
  • It’s a very useful tool for buyers or planners or sellers to know the inventory position and troubleshoot MRP or ATP issues.


If you find my blog useful, please like and share your feedback in the comments below and follow me for more content like the above.

Please follow my profile for future posts (

Topic Page (find the most relevant one –

Ask questions about MM (Materials Management) and follow (

Read other MM (Materials Management) blog posts and follow (

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Dan K
      Dan K

      This is very good and detailed blog on inventory balance with different stock type.

      Author's profile photo Andrew Dama
      Andrew Dama

      Wonderful blog to read. Thank You

      Author's profile photo Ven Lui
      Ven Lui

      Easy to understand blog