Freight Cost in SAP MM: Planned and Unplanned Delivery Costs
freight cost in sap mm
Also searched as
- sap mm planned delivery costs
- inbound freight condition type FRB1 purchase order
- unplanned delivery costs MIRO
Short answer
In SAP MM, inbound freight is handled as delivery costs: planned delivery costs are conditions on the purchase order item (typically FRB1, FRC1, FRA1) that accrue at goods receipt, while unplanned delivery costs are entered in the vendor invoice (MIRO) when the freight was not on the PO. Where the cost lands, stock or expense, depends on the price control, valuation and the account keys behind the freight conditions.
Applies to: SAP ECC 6.0 and S/4HANA on-premise, standard MM-PUR and MM-IV; condition and account names vary with your calculation schema
How to account for inbound freight
- 1Decide whether freight is invoiced by the material vendor (on the same invoice) or by a separate freight forwarder. This decides whether you use a condition on the PO or a separate PO/service.
- 2In the PO (ME21N), open the item, go to the Conditions tab and add a freight condition type such as FRB1 (absolute), FRC1 (per quantity) or FRA1 (percentage) with the planned amount.
- 3For a separate forwarder, enter the forwarder in the vendor field of the freight condition, so the freight is invoiced by that vendor against the same PO.
- 4Post the goods receipt with MIGO. For moving average price (V), planned delivery costs increase the stock value; for standard price (S), they go to a price difference account.
- 5In MIRO, enter the invoice; planned delivery costs appear as selectable items under the PO reference. If the freight was not planned, enter it in the Unplanned delivery costs field on the Basic Data tab and let SAP distribute it.
- 6Check the postings in the accounting document (MIRO > Display, or FB03) and review account determination in OBYC for freight transaction keys.
Planned versus unplanned delivery costs
Planned delivery costs are known when the PO is created. They are maintained as conditions with a condition category for delivery costs, so they accrue when goods are received and clear at invoice receipt. This keeps GR/IR balanced because the accrual and the invoice line match.
Unplanned delivery costs are entered at MIRO when the vendor invoice contains a freight line that was not on the PO. SAP can distribute them across the invoiced items by quantity, value or manually. For moving average priced materials, the distributed amount increases stock value only for the quantity still in stock; the rest goes to a consumption or price difference account.
Which one you use is a process choice. Planned costs give better landed-cost visibility at receipt; unplanned costs are more flexible but only show in valuation at invoice time.
Account determination and where freight posts
Freight conditions carry an account key in the calculation schema (commonly FR1, FR2, FR3 for freight provisions, clearing and duties). Those account keys are mapped to G/L accounts in OBYC under the relevant transaction key, by valuation class.
If the account keys are missing from OBYC for a valuation class, goods receipt or invoice posting fails with an account determination error. Build the account assignments for the freight account keys together with the freight condition types, never separately.
For a forwarder invoiced separately, the freight accrual is cleared by the forwarder's own invoice against the same PO item, so GR/IR shows two invoice references on one receipt.
Checking what was posted
The PO history on the item (ME23N, PO History tab) shows goods receipts, delivery cost lines and invoices. The underlying history is in EKBE, with the delivery cost lines distinguished by their history category, which makes it simple to reconcile freight per PO.
A quick landed-cost query helps your buyers compare quoted and actual freight.
SELECT EBELN, EBELP, VGABE, BEWTP, BUDAT, DMBTR, MENGE
FROM EKBE
WHERE EBELN = '4500001234'
ORDER BY EBELP, BUDAT
Common pitfalls
- !Using planned delivery costs on a standard-price material and expecting stock value to rise; the difference goes to a price difference account instead.
- !Adding a freight condition type that is not in the calculation schema, so it silently never appears in the PO.
- !Forgetting the account keys in OBYC for the valuation class, which stops GR or MIRO posting.
- !Entering unplanned delivery costs twice, once on the PO and once in MIRO, which double counts freight.
- !Mixing a separate freight vendor with the material vendor on one invoice and then failing to match the right GR/IR lines.
How an ERP-grounded AI assistant handles this
Buyers often ask why a landed cost differs from the PO price. Netray's ERPray can run this kind of lookup in plain language against your own SAP system, read-only by default, showing the query it ran and respecting SAP authorizations, with the model served on your own hardware when the system is on-prem. It explains and finds the data; it does not replace configuration decisions or post documents without human approval.
Frequently asked questions
Which freight condition types does SAP MM provide?
Standard systems ship FRB1 (freight absolute), FRC1 (freight per quantity) and FRA1 (freight percentage), plus related duty and discount types. Your calculation schema decides which are active, so check the schema in customizing rather than assuming they exist in your system.
Do I have to put freight on the PO?
No. You can enter it as unplanned delivery costs at MIRO. Planned costs give earlier landed-cost visibility and clean GR/IR accruals, while unplanned costs are more flexible but only affect valuation at invoice time.
How is freight split across items on an invoice?
For unplanned delivery costs, SAP lets you distribute by quantity, by value or manually. For planned conditions, the amount is assigned at the PO item level, so no distribution is needed.
Why did freight go to a price difference account?
The material uses standard price control. Under standard price, delivery costs are not added to stock value, so the difference is posted to a price difference account determined in OBYC.
Related
SAP GR/IR clearing account balance: reconcile with MB5S and clear with MR11
The GR/IR clearing account holds the value of goods received but not yet invoiced, and invoices not yet matched with receipts. It should trend to zero per PO item. Reconcile it with MB5S, find the PO items that are stuck, and clear true differences with MR11 or automatic clearing in F.13, after correcting the cause.
How-toSAP MIRO: invoice blocked for price variance, and how to release it in MRBR
MIRO blocks an invoice for payment when its price or quantity differs from the PO or goods receipt by more than the tolerance limits defined in OMR6. The invoice posts, but it carries a payment block reason (R for price) until someone releases it in MRBR or corrects the underlying data. Release only after confirming which side is wrong.
How-toSAP open purchase orders report: ME2N, ME2M, ME2L and the underlying tables
Use ME2N for a flexible open PO list, ME2M by material and ME2L by vendor, with the selection parameter Still to be delivered. The open quantity is the scheduled quantity in EKET minus goods received in EKBE, excluding deleted and delivery-completed items. For custom reports, read EKKO, EKPO, EKET and EKBE.
Error fixSAP M7 021: Deficit of SL Stock Quantity
M7 021 fires during a goods issue, delivery, or confirmation when SAP checks the unrestricted-use (SL) stock for the exact plant, storage location and batch combination and finds less than what you are trying to post out. Fix the entry (batch, storage location, quantity) first; only enable negative stock or downgrade the message to a warning if the business genuinely needs to post ahead of a receipt.
Error fixSAP IDoc Status 51: Application Document Not Posted
Status 51 tells you the IDoc reached the application layer and failed to post, but the status text itself is not the error - the real cause sits in the status record's long text or the linked application log. Fix the underlying data or configuration, then reprocess the IDoc through BD87 rather than editing the status.
Error fixSAP Short Dump TIME_OUT: Maximum Runtime Exceeded
A TIME_OUT runtime error means a dialog (or RFC) work process ran longer than the maximum allowed runtime, controlled by profile parameter rdisp/max_wprun_time (600 seconds by default). The fix is almost always to move the long-running work to background processing or tune the underlying program, not to raise the timeout.
AI for ERPAI for SAP S/4HANA, Running On-Prem or in Your Private Cloud
Run AI on SAP S/4HANA without sending ERP data to a public API. On-prem and private-cloud architecture, CDS views, OData, and honest deployment trade-offs.
Stuck on SAP ECC / S/4HANA?
Talk to engineers who work inside SAP ECC / S/4HANA every week, and who build private AI that answers these questions from your own ERP data.
Keep exploring
ERP fixes and how-tos
- Landed cost in SAP MM: planned and unplanned delivery costsHandle freight, duty and delivery costs in SAP MM: planned vs unplanned delivery costs, condition types, GR/IR posting and the effect on material valuation.
- Pricing Procedure in SAP MM, with a Worked PO ExampleHow the SAP MM purchasing pricing procedure works: condition types, calculation schema, schema determination, a worked PO and how freight is captured.
- SAP MM price determination: pricing procedure, condition types and fixing wrong PO pricesHow SAP MM determines purchase prices: the RM0000 calculation schema, condition types like PB00, schema determination, and how to fix a wrong price in ME21N.