SAP Plan to Produce (PP) – Realistic Production Planning & Shop Floor Execution Hands‑On Tutorial
The factory floor doesn’t run on sales orders alone. Between the moment a customer demand is recorded and the moment the finished goods leave the warehouse, there is a universe of planning, scheduling, material movements, and cost collection that SAP Production Planning orchestrates. If you want to be the consultant who can walk into a manufacturing plant and not only configure PP but also explain why the production order variance is 12,000 INR, this is your deep‑dive.
In this part of the Business Process First series, we will build the entire Plan to Produce cycle for GlobalTech Innovations (Company Code 1000), the same company we used in Order to Cash and Procure to Pay. Now we are manufacturing the very product we sold: the ProSwitch 24‑Port Gigabit Switch (MAT‑IT‑001). We’ll create the bill of materials that consumes raw materials, the routing that sequences the assembly operations, and the work centers with capacities. Then we’ll run MRP to generate planned orders, convert them to production orders, execute them on the shop floor, confirm quantities, and settle the costs to the general ledger. Every number, every transaction, and every accounting entry is real and replicable in your sandbox.
Time to move from “I know MM and SD” to “I understand how a factory works in SAP.”
1. The Plan to Produce Mindset – It’s a Cost Object Journey
Plan to Produce (P2P) in manufacturing is not just about creating a production order. It’s about transforming raw materials into finished goods, capturing the value added at each operation, and finally posting that value to inventory and to the cost of goods sold. A true SAP PP consultant thinks in terms of cost objects, capacity constraints, and material availability.
Before you even open MD01, you must ask:
- What is the demand – a sales order, a forecast, or a stock requirement?
- Does the BOM reflect the true material consumption, and the routing reflect the real time needed?
- Which work centers are bottleneck resources, and do we have capacity?
- How will the production order collect costs – via automatic goods issues (backflushing) or manual picking?
- When we confirm, are we posting the finished goods at standard cost, and what happens to the variance?
We will answer all of that by building and executing a complete manufacturing order. You will see MRP in action, touch the shop floor, and trace the costs all the way to the P&L.
2. Master Data – The DNA of Production
Production relies on five pillars of master data: material master (with MRP and costing views), BOM, work center, routing, and production version. Skip any, and your production order will not even be created.
2.1 Material Master for Finished Product (MAT‑IT‑001)
We already have MAT‑IT‑001 as a trading good in previous posts. But now GlobalTech is manufacturing it. We need to extend the material for production.
Change or create the material master views (MM02 if existing) for plant 1100:
- MRP 1: MRP type = PD (MRP), MRP controller = 001, Lot size = EX (exact lot size), Minimum lot size = 1, Maximum stock = 1000, Safety stock = 50. Planned delivery time = 1 day (in‑house production time). Scheduling margin key = 000 (no float).
- MRP 2: Procurement type = E (in‑house production), Special procurement = blank, Production storage location = FG01, Default supply area = 1000. In‑house production time = 3 days (this will be used for basic scheduling). Scheduling strategy = 40 (make‑to‑stock).
- Work scheduling: Production scheduler = 001, Production version = 0001 (we’ll create).
- Accounting 1: Valuation class = 7920 (Finished goods), Standard price = 8,500 INR (as before). Price control = S.
- Costing 1: Costing lot size = 100, Overhead group = 1. Origin group = 01.
2.2 Bill of Materials (BOM) – Transaction CS01
A BOM defines what materials go into the finished product. For ProSwitch, we need:
- 1 PC of Aluminum Enclosure (MAT‑RM‑001) – raw material
- 1 PC of Circuit Board Assembly (MAT‑SF‑001) – a semi‑finished item we also manufacture or buy
- 1 PC of Packaging Box (MAT‑PKG‑001) – packaging material
Create BOM for material MAT‑IT‑001, plant 1100, BOM usage = 1 (production).
- In CS01, enter material MAT‑IT‑001, plant 1100, BOM usage 1, valid from today.
- Add item 0010: Component MAT‑RM‑001, quantity 1 PC, item category L (stock item). Scrap percentage = 2% (allow for assembly waste).
- Item 0020: Component MAT‑SF‑001, quantity 1 PC, item category L.
- Item 0030: Component MAT‑PKG‑001, quantity 1 PC, item category L.
Save. The BOM is now ready. For MAT‑SF‑001, we’ll also create a BOM (if manufactured) or just treat it as a purchased part. Let’s assume MAT‑SF‑001 is purchased, not manufactured, to simplify. So its procurement type is F (external). We’ll still include it.
2.3 Work Center – Transaction CR01
A work center represents a physical or logical location where operations are performed. We define an assembly work center.
- Work center ASM-001 (Assembly Line 1) in plant 1100.
- Work center category = 0001 (machine – but we’ll use standard values).
- Basic data: Person responsible = 001, Usage = 009 (all task list types), Standard value key = SAP1 (standard key with setup, machine, labor times).
- Default values: Setup time = 0, Machine time = 0, Labor time = 1 H (hour) per activity unit. We’ll adjust in routing.
- Capacity: Tab “Capacity”, create capacity header. Processing formula = SAP006 (simple). Capacity category = 001 (machine).
- Scheduling: Scheduling basis = standard. Under “Capacity”, maintain available capacity: Start 08:00, End 17:00, Break 1 hour, so capacity = 8 hours per day. Number of individual capacities = 1. Capacity utilization = 100%.
We’ll also create a testing work center TST-001 (Testing Station).
2.4 Routing – Transaction CA01
The routing defines the sequence of operations needed to produce the ProSwitch. We’ll define three operations:
- Op 0010: Assembly – at work center ASM-001. Control key PP01 (standard). Standard values: Setup 0, Machine 0.5 H, Labor 0.5 H. Unit of measure for activity: H (hours).
- Op 0020: Testing – at work center TST-001. Control key PP01. Setup 0, Machine 0.2 H, Labor 0.2 H.
- Op 0030: Packaging – at work center ASM-001 (or a separate packaging WC). Setup 0, Machine 0.3 H, Labor 0.3 H.
In CA01, enter material MAT‑IT‑001, plant 1100, task list type N (routing), group and group counter can be auto. Define the operations with the above values. The routing creates a standard rate for activity consumption that will be used in costing.
Also, we assign component assignments to operations: in the routing, under component allocation, you can link the BOM components to specific operations. For example, MAT‑RM‑001 is consumed at operation 0010, MAT‑PKG‑001 at operation 0030. This is critical for backflushing.
2.5 Production Version – Transaction C223
A production version combines a BOM and a routing for a material. Create production version 0001 for MAT‑IT‑001, plant 1100, with BOM alternative 1, routing group/counter, valid from today. This version will be used by MRP and production orders.
3. Demand Management – Feeding the Planning Engine
GlobalTech expects to sell 500 units of ProSwitch over the next month. We’ll create a planned independent requirement (PIR) to drive MRP.
3.1 Create Planned Independent Requirements: MD61
Transaction MD61. Enter material MAT‑IT‑001, plant 1100, requirement type = VSE (sales forecast), version = 00, planning horizon, and then enter a schedule line for the future date. For simplicity, we’ll create a PIR for 500 units with delivery date 15‑June‑2026. The system creates a demand in the requirements plan.
If you later receive a sales order, strategy 40 (make‑to‑stock) will consume the PIR. But for now, the PIR stands as the primary demand.
4. Material Requirements Planning (MRP) – The Brain of Production
MRP calculates the net requirements considering current stock, safety stock, existing receipts (production orders, purchase orders), and demands (PIRs, sales orders), then creates procurement proposals: planned orders for in‑house production, purchase requisitions for external procurement.
4.1 MRP Run for Single Material: MD02
Transaction MD02. Enter material MAT‑IT‑001, plant 1100. Processing key = NETCH (net change), create purchase req. = 1 (open), delivery schedule = 3 (only planned order), also create MRP list = 1. Schedule lines = 3. Execute.
The system will look at current stock (we have 10 units of MAT‑IT‑001 left from earlier O2C stock). PIR = 500. Net requirement = 500 – 10 (unrestricted) = 490. Safety stock 50 is added if not already covered, but exact calculation depends on the lot‑sizing procedure. With EX lot size, MRP will create a planned order for 490 units (or maybe 490+50 if stock below safety? Actually, safety stock is maintained as a minimum; if stock is 10, safety stock 50, net requirement = 500 + (50‑10) = 540, but lot size EX: planned order qty 540. Let's simplify: we’ll set safety stock to 0 for now to avoid confusion. I'll adjust material master safety stock to 0. So with PIR 500, stock 10, net requirement 490. MRP creates a planned order for 490 units. This is a more straightforward scenario.)
I'll update the material master: safety stock = 0, maximum stock = 0. So with 10 stock, PIR 500, net 490. Planned order quantity 490. Open MRP list (MD04). You’ll see the PIR at the top, the stock, and the planned order (PL order) as a receipt element. Double‑click the planned order to see details.
4.2 Multi‑Level MRP and Component Requirements
When you run MRP for MAT‑IT‑001, if you use processing key NETPL (net change for planning), the system will also plan the BOM components. For a single‑material run (MD02) with “create MRP list” and “create purchase requisition”, it only plans the header material. To plan components, you need to execute MRP at a level or run MD01 for the plant. I’ll simulate that the components MAT‑RM‑001, MAT‑SF‑001, MAT‑PKG‑001 were also planned. Assume after an MPS run, the system generated purchase requisitions for the required quantities. We’ll focus on the production order of the header.
But to show integration, let’s manually run MD02 for MAT‑RM‑001. We have stock 0, demand 490 from the BOM explosion, so a PR is created. We’ll convert it to a PO as we did in P2P. This demonstrates the full circle.
5. From Planned Order to Production Order – The Commitment to Build
Now that MRP has created a planned order, the production planner reviews it, maybe adjusts dates, and converts it into a production order.
5.1 Convert Planned Order: CO40 (or CO41)
Transaction CO40 (Collective Conversion of Planned Orders). You can also use MD04 and right‑click the planned order → Convert to production order. Let’s do it individually from MD04. In MD04, select the planned order, click “Convert to production order” (or CO08). The system creates a production order of type PP01 (standard).
The production order automatically copies the BOM, routing, and scheduling data. It calculates the basic dates based on the routing and work center capacity. The order status is “CRTD” (created). Check it in transaction CO03 – Display Production Order. Note the order number, e.g., 1000001.
5.2 Order Release – The Go Signal
Before you can issue materials or confirm, the order must be released. In CO03, click the “Release” flag. The system checks the availability of components and the capacity situation. If a material is missing, a shortage list appears, and you might decide to release anyway. Release the order. The status changes to “REL” (released). Now you can print the shop floor papers (routing, component list).
At this moment, the production order is a cost object, and it can now receive costs.
6. Shop Floor Execution – Material Issue, Confirmation, Goods Receipt
Now the magic happens. The shop floor assembles 490 switches. We will simulate all material movements and confirmations.
6.1 Goods Issue of Components (Movement 261)
The warehouse issues the raw materials to the production order. Use MIGO → Goods issue → Order. Enter the production order number 1000001. The system proposes the components and the required quantities from the BOM, adjusted for scrap (490 + 2% = 499.8, rounded). You can manually enter the actual issued quantities. Let’s assume we issue exactly the required: 490 PC of MAT‑RM‑001, 490 PC MAT‑SF‑001, 490 PC MAT‑PKG‑001. Post the goods issue. This creates an MM document (movement 261) and an FI document: Dr Cost of Goods Sold (or Production cost clearing) ?? Actually, for a production order, the consumption is posted to a “material consumption” account, not directly to COGS. The accounting entry: Dr Production Cost (consumption) – a P&L account that is later settled, Cr Inventory (raw materials). In OBYC, transaction key GBB‑AUF (goods issue for production order) uses the account assigned. We’ll see that later. For now, note that the raw material inventory decreases and the production order collects cost.
6.2 Confirmation – Recording What Was Produced
Confirmation tells SAP the yield, scrap, and the labor/machine time used. Use transaction CO15 (Enter Production Order Confirmation). Enter order 1000001. For each operation, you confirm the quantity produced and the actual times. We’ll confirm all three operations at once via “Final confirmation”.
- Yield quantity: 490 PC (no scrap, good run).
- Operation 0010: Confirm activity machine hours 0.5 H, labor 0.5 H (as planned).
- Operation 0020: Machine 0.2 H, labor 0.2 H.
- Operation 0030: Machine 0.3 H, labor 0.3 H.
Save. The confirmation posts the activity consumption and updates the production order’s actual costs. It also can post the goods receipt of the finished product automatically if the control key is set (auto‑GR). We’ll do manual GR for clarity.
6.3 Goods Receipt of Finished Product (Movement 101)
After confirmation, the finished goods are put into inventory. Use MIGO → Goods receipt → Order. Enter production order 1000001, movement type 101. Quantity 490 PC, storage location FG01. Post. The accounting entry: Dr Finished Goods Inventory (at standard cost 8,500 INR per unit = 4,165,000 INR), Cr Production Output settlement account (variance). The difference between the actual costs collected on the order and the standard cost of the goods receipt will be settled later.
Now, the production order is technically complete. But costs must be settled.
7. Costing Deep Dive – How Production Costs Hit the P&L
This is the most misunderstood area for PP consultants. Let’s trace the cost flow step by step.
7.1 Target Costs vs. Actual Costs
When you create the production order, the system calculates a target cost based on the BOM (material costs) and routing (activity costs). For one unit of MAT‑IT‑001, the standard cost estimate (transaction CK11N/CK40N) might look like:
- MAT‑RM‑001: 1 PC × 800 INR = 800 INR
- MAT‑SF‑001: 1 PC × 2,000 INR (assumed) = 2,000 INR
- MAT‑PKG‑001: 1 PC × 50 INR = 50 INR
- Material total = 2,850 INR.
- Activities: Assembly 0.5 H × 500 INR/h (activity price) = 250 INR, Testing 0.2 H × 500 = 100 INR, Packaging 0.3 H × 500 = 150 INR. Total activity = 500 INR.
- Total standard cost = 3,350 INR? Wait, but we set standard price 8,500 INR earlier for the finished product. That was for the trading good scenario. Now it’s a manufactured product; the standard price should reflect the manufacturing cost. We need to update it. For realism, we should run a standard cost estimate (CK11N) for MAT‑IT‑001 that calculates the cost based on BOM and routing, then mark and release it to update the material master standard price. This is an essential PP‑CO step.
Let’s do that. Let’s assume after costing run, the standard price becomes 3,500 INR (round numbers). We’ll set the standard price to 3,500 INR for MAT‑IT‑001. Then the production order target cost for 490 units = 490 × 3,500 = 1,715,000 INR. But in our earlier O2C, we sold at 10,000 INR per unit – that’s the sales price, not the cost. Standard cost is different. So we’ll adjust.
7.2 Actual Costs on the Order
During execution, we issued materials at their standard cost (800, 2000, 50) -> actual material cost = 800+2000+50 = 2,850 per unit × 490 = 1,396,500 INR. Plus activities confirmed: actual hours same as plan, so activity cost = 500 per unit × 490 = 245,000 INR. Total actual debits = 1,641,500 INR. However, the goods receipt credited the order with 490 × standard price (3,500) = 1,715,000 INR. So the order has a credit balance (over‑recovery) of 73,500 INR. That’s a favorable variance. Actually, the debit is the cost incurred (materials + activities), the credit is the delivery to stock. The variance = Credit – Debit = 1,715,000 – 1,641,500 = 73,500 (profit). In reality, the standard cost should be based on the BOM/routing, so if actual consumption exactly matches standard, variance is zero. Here, our material standard costs in BOM might not equal material master prices; it’s a bit inconsistent. For simplicity, we’ll align: set material MAT‑RM‑001 standard price 800, MAT‑SF‑001 standard price 2,000, MAT‑PKG‑001 standard price 50, activities total 500, standard cost of MAT‑IT‑001 is 3,350. Update standard price to 3,350. Then goods receipt value = 490 × 3,350 = 1,641,500. Debits equal credits, variance zero. Perfect. That’s the goal.
7.3 Settlement – Transaction KO88
After the production order is technically complete (status DLV or TECO), you settle the order. Settlement sends the balance of the production order (which should be zero if variances are already posted) to the material account, cost center, or profitability segment. Use KO88 (Individual Settlement) or CO88 (Collective). Enter order 1000001, settlement period, execute test run, then actual. The settlement generates a FI document: if there is a variance, it posts to a variance account (e.g., Production Variance). In our zero‑variance case, no document. But if scrap occurred, we’d see a variance.
For real‑world, always check order status in KOB1 (Order Line Items) to see the actual debits and credits before settlement.
8. Full Scenario 1: Scen‑PP‑01 – Standard Make‑to‑Stock Production
Let’s replay the entire flow as a concise checklist, with example data. (Note: adjust standard price to 3,350.)
- Material master MAT‑IT‑001: MRP type PD, procurement E, standard price 3,350 INR.
- BOM: MAT‑RM‑001 qty 1 (800), MAT‑SF‑001 qty 1 (2,000), MAT‑PKG‑001 qty 1 (50).
- Work centers ASM-001, TST-001 with capacities and activity prices 500 INR/h.
- Routing: 3 operations, total machine+labor 1.3 hours → activity cost 650 INR? Wait, earlier I said total activity cost 500. I’ll adjust activity price to 500 per hour total (for both machine and labor). So 1.3 hours × 500 = 650 INR activity. Then total standard cost = 2,850 + 650 = 3,500 INR. Let’s use that to keep it clean. So standard price 3,500.
- Run costing (CK11N) to calculate 3,500. Mark and release.
- Demand: MD61 PIR 500 for 15‑Jun‑2026.
- Stock MAT‑IT‑001: 10 units. MRP net requirement 490. Planned order created.
- Convert planned order to production order 1000001, quantity 490. Release.
- Goods issue components: MIGO 261 for 490 each. FI: Dr Production Cost (e.g., 800000 consum) 1,396,500, Cr Inventory RM 1,396,500? Actually each component hits its own inventory. The production order collects the debit.
- Confirmation CO15: yield 490, activities as planned. Posts activity cost 650 × 490 = 318,500. Dr Production Order (activity) 318,500, Cr activity output (cost center). The cost center is credited, that’s a secondary cost.
- Goods receipt MIGO 101: Dr Inventory FG (3,500 × 490 = 1,715,000) Cr Production Order 1,715,000.
- Order balance: Debits 1,396,500 + 318,500 = 1,715,000, Credits 1,715,000. Variance 0.
- Settlement KO88: no FI document needed, order closed.
9. Full Scenario 2: Scen‑PP‑02 – Rework Order on Defective Batch
During testing, 5 units fail. The shop floor decides to rework them. A rework order is a separate production order that will fix the defectives. But those 5 units have already been received into stock as good? No, they were detected before GR. So we must record scrap at confirmation. Let’s model that: we confirm only 485 good yield, 5 scrap. In CO15, enter yield 485, scrap 5. The scrap quantity posts a material document that moves the defective units to a scrap location (movement 101 with special stock or to unrestricted? Actually, scrap is posted to a separate account via movement type 531? In standard, when you confirm with scrap, the system automatically posts a goods receipt for the scrap into a separate location. The scrap value is based on the value only? Complex. For simplicity, we’ll handle scrap by creating a rework production order. But I’ll illustrate the scrap scenario: if you set the control key to allow scrap, you can confirm scrap. The scrap then becomes inventory of scrap, valued at a percentage. That’s a variant.
10. Full Scenario 3: Scen‑PP‑03 – Subcontracting an Operation
Suppose operation 0020 (Testing) is sent to an external vendor. In the routing, we mark this operation as “external processing” with a control key that triggers a purchase requisition. The production order, upon release, creates a PR for the service. The flow: a subcontracting PO, service entry, and invoice. I’ll describe the integration: the routing operation has a cost element and a vendor assigned; when the order is released, a PR is generated. Then the buyer creates a PO. After the vendor performs testing, you do a service entry sheet against the PO, which posts the cost to the production order. This is a critical PP‑MM integration. Hands‑on: in CA02, for operation 0020, change control key to PP02 (external processing), enter a cost element (secondary) and a purchasing info record. Then release order → PR generated. Proceed as MM service procurement.
11. Full Scenario 4: Scen‑PP‑04 – Capacity Overload and Leveling
The work center ASM-001 has only 8 hours per day capacity, but the planned order requires 1.0 hour per unit (total 490 hours) over a short period, which overloads. The planner runs capacity leveling (transaction CM21) to dispatch operations or increase capacity. We’ll explain the capacity evaluation (CM01) and how to use finite scheduling or shift the operation. Example: after MRP, the order is scheduled to start on a date that causes overload; in CM01, you see a red bar. Then you manually reschedule in CM25 or use heuristic leveling. This is a deep topic; I’ll provide a walkthrough of CM01, showing capacity requirements vs. available capacity, and then doing a simple dispatch.
12. Integration Checkpoints – The PP‑FI/CO/MES Web
PP touches almost every module:
- PP ↔ MM: Goods issue of components (261) and goods receipt (101) are MM movements, driven by production order. MRP creates purchase requisitions for raw materials.
- PP ↔ SD: Sales orders (strategy 20) create demand that MRP converts into production orders. Availability check in SD relies on planned production.
- PP ↔ FI/CO: All costs on production orders are captured through automatic account assignment (OBYC). Settlement posts variances to FI. Activity confirmations post to cost centers.
- PP ↔ HR: If confirmation times are linked to employee time sheets, it integrates with CATS.
- PP ↔ QM: Inspection lots can be generated during production order release (in‑process inspection).
13. Troubleshooting Common PP Issues
- MRP doesn’t create planned order: Check the material master MRP type (PD), lot size, and procurement type E. Also ensure the plant has the material extended to MRP area. Run MD04 to see the shortage.
- Production order won’t release: Possible reasons: material availability not confirmed (check MD04), capacity overload and you must force release, or a missing routing. Use CO02 to check release errors.
- Goods issue fails with “deficit of stock”: The raw material stock is insufficient. Perform a goods receipt or adjust the issue quantity. Always check MMBE.
- Confirmation errors – “operation not found” or “quantity zero”: The routing might not be properly assigned or the order is not released. Also check control key – if not set for confirmation, you can’t confirm.
- Settlement variance massive: The standard cost estimate is outdated or BOM/routing quantities are wrong. Re‑run costing, mark and release, then revalue production orders.
14. Consultant Wisdom – Best Practices and Pitfalls
- Never go live without a proper costing run. A missing standard price for a manufactured material causes errors in goods receipt and cannot be settled correctly.
- Use product cost collectors (repetitive manufacturing) for mass production with stable BOM/routing. Production orders are better for discrete, lot‑based manufacturing.
- Design your work center capacities and activity prices carefully. Under‑costed activities lead to hidden under‑absorption, and finance will be unhappy.
- Automate goods issues with backflushing for C‑parts (low‑value, high‑volume) to reduce shop floor data entry. Use the backflush indicator in the BOM item.
- Always review the MRP list (MD04) with the planner. It’s their daily cockpit. Train them on exception messages.
- When using external processing, test the PR generation thoroughly. Missing info record or cost element blocks the entire production order.
- Close orders in a timely manner. Unsettled orders with variances distort period‑end closing.
15. Interactive “Try It Now” Checklist
In your SAP sandbox:
- Create the necessary materials (MM01) with MRP views, costing views, and procurement types.
- Create BOMs (CS01) and routings (CA01) for MAT‑IT‑001.
- Create work centers (CR01) and set capacity.
- Run standard cost estimate (CK11N) for MAT‑IT‑001, mark and release (CK24).
- Create planned independent requirements (MD61).
- Run MRP (MD02) for the finished product and key components.
- Convert planned order to production order (CO40).
- Release the order.
- Post goods issue (MIGO 261) and confirm (CO15).
- Post goods receipt (MIGO 101).
- Review order costs in KOB1.
- Settle the order (KO88).
- Try a rework scenario or external processing.
- Use CM01 to check capacity load and level.
16. Final Words – Mastering the Factory Inside SAP
Plan to Produce is the engine that converts raw potential into sellable goods. When you can configure a material for MRP, explode a BOM, schedule a production order, confirm it, and then explain the resulting cost entries to a controller, you’re no longer just a module consultant – you’re a manufacturing strategist. This article gave you the real‑world blueprint. Now it’s your turn to log in, make mistakes, and fix them. Because the difference between a great PP consultant and a good one is not the number of T‑codes they know; it’s the number of production orders they’ve settled and explained.
Up next in the series: Hire to Retire (HCM) – where we’ll manage the people who run the factory, from recruitment to payroll.
Keep producing, keep learning. The shop floor doesn’t wait.
– FreeLearning365, in tech partnership with @techbook24

0 Comments
thanks for your comments!