How to Read MD04 in SAP: The Stock/Requirements List Explained
Available quantity goes negative on October 19. The planner calls the supplier in a hurry, and the order she pulls in is not the one causing the problem. She reacted fast; she simply misread the screen. MD04 in SAP, the Stock/Requirements List, lines up stock, requirements and planned receipts for one material in one plant, in date order. Line by line, it recalculates the available quantity: that column tells you whether something will run short, and on which date. The goal here: read a line without getting the date or the quantity wrong, then turn every exception message into a concrete action.
MD04shows, for one material in one plant, every element that counts for material requirements planning: stock, sales and forecast requirements, dependent requirements, planned orders, purchase requisitions, purchase orders, production orders.- The list is dynamic: it is recalculated every time you open it.
MD05(the MRP list) is a frozen snapshot of the last planning run, and it only exists in classic MRP. - The Available Qty column is the one to read first: safety stock is already deducted from it, so a negative figure does not always mean a physical stockout.
- Exception messages come from the planning run. On a firm receipt, SAP changes nothing by itself: it suggests (bring forward, postpone, cancel) and you take the action.
- For a receipt, the date shown by default is the availability date, not the delivery day: switch to the goods receipt date (GR date) before calling a supplier.
What MD04 is for, and what it does not show
One material, one plant, one timeline
In S/4HANA as in ECC, the MD04 transaction is the output screen of material requirements planning. The planning run (MRP Live, transaction MD01N in S/4HANA) compares what goes out with what comes in and creates procurement proposals. MD04 shows you the result for a single material in a single plant: a list sorted by date where each line is an MRP element, with its quantity and the resulting available quantity.
It sits where two modules meet. On the PP side, you see planned orders, production orders and the dependent requirements they create for components. On the MM side, you see purchase requisitions, purchase orders and stock. Sales orders, which come from SD, appear as requirements. The same screen therefore serves both the production planner and the buyer.
Prerequisites that are often forgotten when “MD04 is empty”: the material needs its MRP views maintained in the material master (MRP type, lot size, MRP controller, safety stock in the MRP 2 view), and the plant must be planned. Without a planning run, MD04 does show stock and requirements, but no proposals and no exception messages, since those are outputs of the run.
A live snapshot, not the result of the last planning run
Every time you open MD04, SAP rereads the material’s MRP elements and recalculates the list. A purchase order entered ten minutes ago shows up, even if no planning run has happened since. Hence the name dynamic list.
What the list does not show: history (it looks forward), stock detail by storage location and stock type (that is the job of MMBE), or several materials at once (that is MD07). If your plant works with MRP areas, results are read per planning scope: before concluding that a material is short, check which MRP area you are looking at.
Opening MD04 and setting up the view
Nothing below changes configuration: these are personal display settings that you can change at any time.
-
1Enter the material and the plant
Start
MD04. On the initial screen, Individual Access tab, enter the Material and the Plant, then confirm. The Collective Access tab lets you start from an MRP controller and get the list of their materials. -
2Expand the header
Use Expand Header Details. You get the parameters used to plan the material (MRP type, lot size, lead times, safety stock) without opening the material master.
-
3Choose which date is shown for receipts
By default, it is the availability date; a button lets you switch to the goods receipt date (GR date). Note which one is active before you read anything.
-
4Filter, or switch to period totals
If the list is long, use the filters to keep only some elements, or switch to Period Totals, by day, week or month, to see at a glance when the available quantity deteriorates.
-
5Save your preferences
The Settings button keeps your display preferences (visible columns, layout). They also apply to the MRP list.
Two useful columns are sometimes hidden by default: Start/Release Date and Opening Date. They tell you when a proposal must be released to arrive on time. If you do not see them, add them to the layout.
Reading a line: date, MRP element, quantity, available quantity
Each line of the stock/requirements list reads from left to right: a date, an MRP element (what kind of line it is), the MRP element data (purchase order, order or reservation number), a possible Rescheduling Date, an exception code, the received or required quantity, and finally the available quantity.
| MRP element | What it is | Effect on available qty |
|---|---|---|
| Stock | Stock available for planning, on the first line | Starting point |
| SafeSt | Safety stock from the material master | Issue (deducted automatically) |
| IndReq | Planned independent requirement (PIR), the sales or production forecast | Issue |
| Sales order | Requirement from an SD sales order | Issue |
| Dependent requirement | Component requirement created by the order of a higher-level material | Issue |
| Reservation | Planned issue that has been reserved (for example for an order) | Issue |
| PlOrd. | Planned order, a proposal from the planning run | Receipt |
| PurRqs | Purchase requisition | Receipt |
| Purchase order | Purchase order item, a firm receipt | Receipt |
| Production order | Released or created production order, a firm receipt | Receipt |
If an abbreviation means nothing to you, do not guess: the magnifying glass at the start of the line (Additional Data for MRP Element) opens the element detail, with the source document.
Receipts: stock, scheduled receipts, planned orders
Not all receipts carry the same weight. A purchase order or a production order is firm: the planning run no longer changes it. A planned order or a purchase requisition is a proposal: the next run can move it, change it or delete it. Reading MD04 without making that distinction means counting on receipts that may be gone tomorrow morning.
From the magnifying glass of a planned order, you can also convert it on the spot: into a production order for a manufactured material, into a purchase requisition for a purchased one. This is interactive conversion, handy for an urgent case without leaving the list. From there, the purchase requisition follows the standard procurement cycle.
Issues: customer requirements, dependent requirements, reservations
For a component, most issues are dependent requirements. They are created when a planned order for the finished product is created: SAP explodes the bill of materials and places a requirement on each component, on the date the shop floor will need it. The planned order relies on a production version to know which BOM to use. The consequence: an odd dependent requirement in MD04 is rarely fixed in MD04. You need to go back to the finished product’s order, then to its master data.
The available quantity column: where to look first
The Available Qty column gives, line after line, what would be left if everything went to plan. Safety stock is already taken out from the second line: with 40 tonnes in stock and 10 tonnes of safety stock, the list shows 30 tonnes available before any issue. Your reflex: go down the column and spot the first line where the figure turns negative. That date is what matters, not the total at the bottom of the list.
Requirement date or availability date: the classic mix-up
For a receipt, the date shown by default is the availability date: the day the goods can be used, including goods receipt processing time. It is not the day the truck arrives. If you call a supplier with the MD04 date without switching to the goods receipt date, you may be asking them to deliver a day too early or a day too late.
MD04 exception messages: what to do with each alert
An exception message is an alert set by the planning run on a specific element, when a situation needs the planner’s attention. The code appears in the Exception column; double-clicking it shows its text at the bottom of the screen. For rescheduling messages, the date SAP suggests is in the Rescheduling Date column.
| Code | Text on screen | What SAP is flagging | The action that follows |
|---|---|---|---|
| 10 | Bring process forward | A firm receipt arrives too late to cover a requirement | Ask the supplier or the shop floor to pull it in to the suggested date, then change the purchase order or the order |
| 15 | Postpone process | A firm receipt arrives earlier than needed | Negotiate a later date to avoid stock arriving too early |
| 20 | Cancel process | A firm receipt is no longer needed: the requirement has dropped or disappeared | Check with the buyer or the shop floor, then reduce or cancel |
| 30 | Plan process according to schedule | The lead time is too long to cover the requirement in time | Look for an emergency solution and check that the lead time in the material master is right |
| 06 | Start date in the past | A proposal should already have been released | Convert it without waiting, or reschedule it if the requirement allows |
| 07 | Finish date in the past | The finish or receipt date has passed | Handle it first: a real delay, or a receipt never posted in the system? |
| 96 | Stock fallen below safety stock level | Available quantity drops below safety stock | Check whether the next receipt covers it; if not, bring it forward or order |
| 25 | Excess stock | Coverage exceeds the maximum set in the coverage profile | Slow down the upcoming receipts |
| 50 | No BOM exists | No bill of materials found for the material to be produced | Fix the master data before anything else |
| 98 | Abnormal end of requirements planning | The planning run stopped for this material | Find the master data at fault, then run planning again |
Messages are grouped into configurable groups, and their text can be adapted in your company’s customizing: if a text differs in your system, go by the code.
Bring forward, postpone, cancel: the three most frequent actions
Codes 10, 15 and 20 apply to firm receipts: purchase orders, production orders, firmed proposals. It is precisely because they are firm that the planning run does not move them itself. It sets a suggested date and waits for a person to act. On a non-firm proposal, by contrast, the run adjusts date and quantity directly the next time it runs. A 10 or a 15 that comes back every morning on the same purchase order therefore means nobody has dealt with it, not that SAP is wrong.
For the order of processing, one simple rule is enough: first what prevents planning (98, 50), then what is already late (07, 06), next the rescheduling messages (10, 15, 20, 30), and finally the stock level alerts (96, 25). Purely informational messages, such as 01 (Newly created order proposal), usually need no action.
Why MD04 and MD05 do not always show the same messages
Messages are created during the planning run. The MRP list (MD05) freezes them at the time of the run. MD04, on the other hand, recalculates the elements each time it opens, and some messages cannot be generated there, such as those about newly planned elements. Likewise, informational messages and abnormal-end messages are viewed in the collective MRP list (MD06), not in MD07. If the data has changed a lot since the last run, run planning again for the material before deciding on a message.
Walking through a case: from stock gap to decision
A fictional case at the Valencia plant of the Glass+ glass group (plant 1230). Marta Vidal, purchasing key user, opens MD04 for silica, material GP-SILICE, a purchased raw material. It is consumed by the production of float glass GP-FLOAT: each planned order for glass creates a dependent requirement on silica. Safety stock: 10 tonnes. All data is invented for the example.
| Date | MRP element | Rescheduling Date | Exception | Quantity (t) | Available Qty (t) |
|---|---|---|---|---|---|
| Oct 12 | Stock | 40 | 40 | ||
| Oct 12 | SafeSt | -10 | 30 | ||
| Oct 15 | Dependent requirement (GP-FLOAT planned order) | -25 | 5 | ||
| Oct 19 | Dependent requirement (GP-FLOAT planned order) | -25 | -20 | ||
| Oct 23 | Purchase order, silica supplier | Oct 19 | 10 | 30 | 10 |
| Nov 9 | Purchase order, silica supplier | Nov 20 | 15 | 30 | 40 |
| Nov 20 | Dependent requirement (GP-FLOAT planned order) | -30 | 10 |
-
1Spot the first negative available quantity
Here, -20 tonnes on Oct 19. Careful, safety stock is already deducted: physically, 10 tonnes would be missing, and the other 10 would come out of safety stock. The problem is real, but half as serious as the figure suggests.
-
2Read the messages
The Oct 23 purchase order carries a 10 with a suggested date of Oct 19. The Nov 9 one carries a 15 with a suggested date of Nov 20. SAP is not asking for a new purchase order: it is asking you to move the two that already exist.
-
3Open the element
The magnifying glass on the Oct 23 purchase order gives the PO number and the supplier. Switch the display to the goods receipt date before calling, so you talk to the supplier about their delivery day and not about the internal availability date.
-
4Decide
Marta gets an earlier delivery for the first purchase order and a later one for the second. She changes the dates in both purchase orders. She is the one who acts in the purchase order:
MD04changes nothing on its own. -
5Check after refreshing
The recalculated list should no longer show any negative available quantity, and messages 10 and 15 should disappear at the next planning run.
After the decision, the purchase order arrives on Oct 19 and available quantity no longer drops below 5 tonnes. The second purchase order, moved to Nov 20, covers the requirement on the same day without tying up 30 tonnes of silica for eleven days. The mistake avoided is the one from the introduction: chasing the wrong purchase order in a hurry, or creating a third one when two were enough.
MD04 vs MD05, MD07 or MMBE: which screen for which question?
| Screen | The question it answers | When to open it |
|---|---|---|
MD04, Stock/Requirements List | Will this material run short, and when? | To make a decision on one material, with the current situation |
MD05, MRP List | What did the last planning run calculate? | Classic MRP only, to compare with the current situation |
MD07, collective | Which materials in my portfolio need action? | In the morning, to sort your materials by urgency (red, yellow, green lights) |
MMBE, Stock Overview | How much do I have in stock right now, and where? | For current stock detail by storage location, with no projection over time |
One thing to watch in S/4HANA: MRP Live does not create MRP lists. If all your materials are planned with MRP Live, MD05 has nothing to show you and MD04 becomes your only reference. MD06 plays the same collective role for the MRP list as MD07 does for the stock/requirements list.
In the Fiori launchpad, searching for “Monitor Stock/Requirements List” opens the same list. To manage many materials, the Monitor Material Coverage (Net and Individual Segments) and Manage Material Coverage apps list materials that are short according to a shortage definition and suggest solutions. Finally, to simulate medium-term load rather than read today’s situation, pMRP is the tool to look at.
Reading mistakes that cost a lot
- Reading the wrong date. The availability date is not the delivery date. Switch to the goods receipt date before calling a supplier.
- Reading MD05 while thinking it is MD04. The MRP list is frozen at the last run: a purchase order entered since then is not in it. To make a decision, open
MD04. - Forgetting safety stock. It is deducted from the second line. An available quantity of -5 can mean “I am eating into my safety stock”, not “the line is going to stop”.
- Looking at the wrong scope. With MRP areas, a material can look short in one area while the stock sits in another. Check which one you are reading.
- Mixing up planning and promising.
MD04is for planning procurement. Promising a date to a customer is the job of the availability check (ATP), which follows its own rules.
Explaining MD04 in an interview
The question often comes like this: “How do you know a material is going to run short?”.
“I open MD04 for the material and the plant. It is a dynamic list, recalculated when it opens, that lines up stock, requirements and receipts by date and calculates the available quantity line by line, with safety stock deducted. I look for the first negative line, then I read the exception message: on a firm purchase order, a 10 tells me to bring it forward, a 15 to postpone it, a 20 to cancel it, with a suggested date. I only use MD05 in classic MRP, to compare with the last planning run.”
You will show you have hands-on practice if you add the difference between the availability date and the goods receipt date. More questions of the same kind are waiting for you in our SAP consultant interview questions.
Frequently asked questions
What is the MD04 transaction used for in SAP?
MD04 displays the stock/requirements list of a material in a plant: stock, requirements and planned receipts, sorted by date, with the available quantity recalculated on every line. Planners and buyers use it to see whether something will run short, when, and which receipt to move.
What is the difference between MD04 and MD05?
MD04 is dynamic: it rereads the MRP elements every time it opens and shows the current situation. MD05, the MRP list, is a snapshot frozen at the time of the last planning run. It only exists in classic MRP: MRP Live, in S/4HANA, does not create MRP lists.
What does an exception message mean in MD04?
It is an alert set by the planning run on a specific element. The most frequent ones concern firm receipts: 10 to bring forward, 15 to postpone, 20 to cancel, with a suggested date in the Rescheduling Date column. SAP suggests, the planner decides and changes the purchase order or the order personally.
Why is the available quantity negative in MD04?
Because on that date, planned issues exceed stock and expected receipts. Safety stock is already deducted in the Available Qty column, so a negative figure can mean safety stock is being used rather than a physical stockout. Read the first line where the available quantity flips: that line gives you the date of the problem.
MD04 or MMBE to check stock?
MMBE shows stock right now, broken down by storage location and stock type. MD04 projects that stock over time by adding requirements and receipts. To know how much you have, open MMBE; to know how much you will have left on the 19th of the month, open MD04.
How can I see several materials at once?
MD07 gives collective access to the stock/requirements list, for example for all the materials of an MRP controller, with traffic lights that flag urgency. In S/4HANA, the Fiori apps Monitor Material Coverage and Manage Material Coverage also let you track shortages across a portfolio of materials.
What to do tomorrow morning
Reading MD04 correctly comes down to a few moves: know which date is displayed, go down the available quantity column to the first negative line, then turn the exception message into an action on a firm receipt. The rest of the screen is there to confirm what those three moves showed you. To place this screen in the whole planning chain, the free SAP Learning course on S/4HANA production planning has a unit on evaluating planning results. In your test system, take a material you know, open its stock/requirements list and look for a 10 or a 15: explain out loud which purchase order should move, and to which date. And if a whole team of planners needs to learn to read this screen the same way, SAP training for your company helps build those reflexes together.