Unit 8: Physical Inventory
Physical inventory reconciles the book stock in the system with what is really on the shelves. It is legally required for the balance sheet and operationally essential, because MRP and availability checks are only as good as the stock figures. This unit covers the standard three-phase process, ways to shorten it, exception monitoring with Situation Handling, and the two special procedures cycle counting and inventory sampling.
Lesson 1 · Conducting Physical Inventory
After this lesson you can
- Define a stock management unit and describe the three phases of physical inventory
- Create physical inventory documents, enter counts and post differences
- Explain posting block, freeze book inventory, adjust book inventory and tolerance groups
- Describe the accounting effects for own stock and consignment stock
Key concepts
Why count?
Most jurisdictions require a periodic physical count to substantiate the inventory values reported as current assets. Internally, wrong stock figures produce wrong availability information, which in turn leads either to shortages or to excess safety stock.
Stock management unit
Inventory is counted per stock management unit – the smallest stock segment that has its own book quantity. Each unit is counted separately and its difference is posted separately. A stock management unit is identified by:
| Criterion | Example |
|---|---|
| Material | Pump P-100 |
| Plant and storage location | 1010 / 101A |
| Stock type | Unrestricted, quality inspection, blocked – each counted separately |
| Batch / valuation type | Batch B01, valuation type "External" |
| Special stock | Supplier consignment K of supplier X, stock O at a subcontractor … |
Note: material group, warehouse number or base unit of measure are not criteria. In warehouses managed with Warehouse Management/EWM the count is done per quant and storage bin instead.
The three phases
| Phase | Activities |
|---|---|
| 1. Preparation | Select stocks, create physical inventory documents, print count sheets, set posting block / freeze book inventory |
| 2. Count | Count, weigh or measure the stock; enter the results in the documents |
| 3. Analysis & posting | Analyze differences, trigger recounts where results look doubtful (a new document referencing the old one), then post differences – this corrects stock quantity and value and updates the stock accounts |
The physical inventory document
A document contains the plant and storage location, the planned count date, the materials (with batch or valuation type where relevant), the stock types to count, and a status for each item and the header. Documents are created per plant/storage location – for special stocks additionally per special stock and supplier/customer/project. Storage bin or material group can be used as further grouping criteria.
| Header field | Purpose |
|---|---|
| Physical inventory number | Free grouping key (count group, counter, department, month…) used to select documents later; not the document number |
| Physical inventory reference | Number of an external document related to the count |
| Description | Free text (when creating/changing manually with MI01/MI02) |
| Count / adjustment / delete status | Whether some or all items are counted, posted or deleted |
| Posting block, freeze book inventory | Control of goods movements during the count |
Each item has an inventory history showing which steps have been done. Document statistics show how many items are open, counted, posted, recounted or deleted.
| Before any count is entered you may… | After some items are counted you may only… |
|---|---|
| Change planned count date, posting block, freeze, PI number/reference/description; change stock type and count unit per item; set deletion indicator; add items; delete the document | Set/remove posting block, freeze/unfreeze, set deletion indicator for items or delete the whole document, enter/change counts |
Entering the count
The count date entered with the first result has two effects: it determines which book quantity is compared (current stock if the count date is in the current period; stock at last period-end closing if it is in the previous period), and it fixes the posting period of the difference posting. E.g. a count dated 30 December is posted in December; if posted in January, posting to the previous period must be allowed. A percentage tolerance can be entered on the initial screen to get a warning if count and book quantity deviate strongly. A count of zero cannot be entered as "0" in the GUI transactions – use the Zero Count indicator (per item or for all uncounted items).
Difference list and posting
When an item is counted its status becomes Counted and the difference is calculated. The difference list (MI20) shows counted quantity, book quantity, difference quantity and difference value across many documents and allows you to enter or change counts, post differences, change documents and flag recounts. Posting the difference creates a material document (movement types 701/702 unrestricted, 703/704 quality inspection, 707/708 blocked) and an accounting document. Differences must be posted for every item, even with a zero difference – only then is the stock management unit's physical inventory complete. Items with status "recounted" can no longer be posted (the new recount document is posted instead).
Tolerance groups (OMJ2) limit the maximum difference value a user may post per document and per item. If the document total exceeds the user's limit, nothing can be posted; if only some items exceed the item limit, the remaining items can still be posted.
The fiscal year comes from the planned count date; all postings for a document must happen in that fiscal year (or in the first period of the next year if backposting is allowed).
Accounting effects
| Stock | Count < book (shortage) | Count > book (surplus) |
|---|---|---|
| Own stock | Credit stock (BSX), debit expense from physical inventory (GBB-INV) | Debit stock (BSX), credit revenue from physical inventory (GBB-INV) |
Supplier consignment K | Treated as an untraced withdrawal: same postings as a transfer to own stock, but the stock-account amount goes to the expense account → debit expense, credit consignment liabilities (KON) | Treated as a reversal of withdrawals: exactly the opposite entries (debit KON, credit inventory revenue) |
Differences are valued at the current valuation price of the material, so posting them never changes the price.
Posting block, freezing and adjusting book inventory
| Function | Effect |
|---|---|
| Posting block (header) | Blocks all goods movements for the stock management units in the document. Material master (storage location stock view) shows physical inventory indicator X. Own stock is blocked at plant/storage location level; special stock additionally per special stock and partner. When the count is entered the block is lifted and the indicator changes to A (inventory not yet completed); it is cleared when the difference is posted. |
| Freeze book inventory | If movements cannot be stopped, the book quantity relevant for the count is frozen at document creation, so later movements do not distort the comparison. Must be allowed per storage location (OMBP). |
| Adjust book inventory | For movements posted late (posting date before the count date) after the book quantity was taken over into the document, the system corrects the document's book quantity. Setting: blank = inactive; 1 = active, on the same date the count is assumed to have happened before the movement; 2 = active, on the same date the movement is assumed to have happened first. |
Example of adjustment: document created with book stock 31 PC; count 35 PC → difference +4. Later a GR of 5 PC is posted with a posting date before the count date → book quantity in the document becomes 36, difference +1 → only 1 PC is posted as surplus.
Process flow
System steps
- Create a physical inventory document with MI01 (plant, storage location, planned count date, optional posting block/freeze, PI number); change with MI02, display with MI03.
- Print the count list with MI21.
- Enter the count with MI04 (count date, optional percentage tolerance, Zero Count indicator where needed); correct with MI05.
- Analyze with MI20; if needed create a recount document with MI11.
- Post differences with MI07 (or from the difference list) and display the resulting material document (MB03) and accounting document.
Configuration (IMG)
SPRO › Materials Management › Inventory Management and Physical Inventory › Physical Inventory › Define Tolerances for Inventory Differences (OMJ2)
SPRO › Materials Management › Inventory Management and Physical Inventory › Physical Inventory › Allow Freezing of Book Inventory Balance in Storage Location (OMBP)
SPRO › Materials Management › Inventory Management and Physical Inventory › Physical Inventory › Settings for Physical Inventory (field Adjust Book Inventory)
The correct process order for an exam sequencing question: create document → print lists → set posting block → freeze book inventory → count → remove posting block → enter count → check differences → post differences.
- Stock management unit criteria: material, plant, storage location, stock type, batch, valuation type, special stock.
- Count date controls book quantity used and posting period; planned count date controls the fiscal year.
- Zero counts need the Zero Count indicator in GUI transactions.
- Every item must be posted – even with zero difference – to complete the inventory; "recounted" items cannot be posted.
- Tolerance groups (OMJ2): limits per document and per item, assigned to users.
- Physical inventory indicator in material master:
X= blocked,A= inventory not yet completed. - Freezing must be allowed per storage location (OMBP).
- Own stock differences:
BSXvs.GBB-INV; consignment differences involveKON.
Lesson 2 · Simplifying Physical Inventory
After this lesson you can
- Combine physical inventory phases in one transaction
- Use the Fiori apps Create Physical Inventory Documents and Manage Physical Inventory Count (including scanning)
- Explain the batch input sessions available for physical inventory
Key concepts
Combining phases
| T-code | Phases combined | What the system does |
|---|---|---|
| MI09 | Create document + enter count | Count is entered without a document; the document is generated on save. Differences are posted afterwards with reference to it. |
| MI08 | Enter count + post differences | For an existing document; differences are posted automatically when the count is saved. |
| MI10 | All three phases | Count is entered without a document; on posting the document is created and differences are posted at once. |
Note: there is no function to copy a new document from an old physical inventory document.
Fiori app: Create Physical Inventory Documents
The app finds stock that is due for counting and creates documents directly from the result list. Standard filters are plant, storage location and "Not counted since"; further filters such as material type, material group or the key figure "goods issues since last count" can be added, and the search field accepts material, batch, customer or supplier IDs. Only materials with at least one material document are listed, and periods already moved by data aging are not evaluated. As in MI01, documents are generated per plant and storage location; extra options are: split by storage location, material or material group, maximum number of items per document, document date, planned count date, PI number, posting block and freeze book inventory.
Fiori app: Manage Physical Inventory Count
Select documents by planned count date, plant, storage location, PI number etc., open a document and enter or change counts. Items are grouped as Uncounted and Counted. Unlike the GUI transactions (MI04, MI05, MI08, MI09, MI10), a zero count is entered simply as quantity 0 – no Zero Count indicator exists, and an empty field means "not counted". A user-specific deviation percentage can be set via the user action menu to receive a warning on save. Serial-number items are displayed only and cannot yet be processed.
Scanning: the app supports the device camera or an external barcode scanner (set in the user action menu; requires a touch device with SAP Fiori client); manual barcode entry is a fallback. Scanning a document number opens that document; scanning a material number lists all open documents containing it so you can jump to the item. The counted quantity is always entered by hand.
Batch input sessions
Batch input simulates dialog entry so that all transaction checks run, which makes it suitable for mass processing. A session is first generated, then processed (usually in the background) via SM35.
| Session type | Purpose |
|---|---|
| Create PI documents (normal stock / each special stock) | Select stock by criteria and create documents when the session runs (e.g. MI31 without special stock) |
| Create PI documents for special procedures | Cycle counting (uses CC indicator) and inventory sampling (random selection) always create documents via batch input |
| Block material / freeze book inventory | Set or remove the indicators in many documents (MI32, MI33) |
| Set zero count | Zero Count for all uncounted items (MI35) |
| Post differences | Post differences in the background to avoid load and lock conflicts during working hours (MI37) |
| Data from external systems: enter count | Transfer counts from a sequential file (MI34); originally built for SAP Retail. Otherwise use BAPI BAPI_MATPHYSINV_COUNT (business object MaterialPhysInv, BUS2028) for mobile data entry. |
| Enter count and post differences | Documents must already exist; missing documents abort the session (MI38) |
| Count without reference | Creates documents and enters counts (MI39) |
| Count without reference + post difference | Creates documents, enters counts and posts differences (MI40) |
A test run is required before importing a sequential file (test data is maintained in Customizing). Default values for the reports (session name, planned count date, stock types…) are set in OMCN.
System steps
- In the Fiori app Create Physical Inventory Documents, filter plant/storage location and "not counted since", select rows and create documents with posting block.
- Open Manage Physical Inventory Count, find the document, enter quantities (0 for empty bins), save.
- Alternatively use MI10 to count and post in one step for a quick spot check.
- For mass postings, generate a batch input session and process it in SM35.
Configuration (IMG)
SPRO › Materials Management › Inventory Management and Physical Inventory › Physical Inventory › Default Values for Batch Input (OMCN)
SAP keeps extending the Fiori physical inventory apps (e.g. scanning support in Manage Physical Inventory Count); check the SAP Fiori apps reference library for your release before relying on a specific feature such as serial number processing.
- MI09 = count without document; MI08 = count + post; MI10 = all three phases.
- Simplifications: combining phases, batch input, Fiori apps – but NOT copying old documents.
- In the Fiori count app, zero is entered as 0; in GUI transactions the Zero Count indicator is needed.
- Cycle counting and inventory sampling always create documents via batch input.
Lesson 3 · Using Situation Handling in Physical Inventory
After this lesson you can
- Explain the purpose of Situation Handling
- Distinguish templates, situation types and instances, object-based and message-based situations
- Outline how to set up an object-based situation type for physical inventory
Key concepts
Many problems stay invisible until someone happens to look: documents not counted on time, differences not cleared, stock in transit overdue, contracts expiring. Situation Handling is an S/4HANA framework that detects such exceptional situations automatically and brings them to the right people – defined via teams and responsibilities – so that they can act early.
| Term | Meaning |
|---|---|
| Object-based situation | Linked to a business object (PO, contract, PI document, material…); triggered by conditions such as a status change or a threshold |
| Message-based situation | Triggered by selected warning/error messages from application jobs or reports |
| Situation template | SAP-delivered blueprint for a use case; underlying data structure cannot be changed |
| Situation type | Customer copy of a template: defines trigger conditions, recipients, texts and actions |
| Situation instance | A concrete occurrence of a situation type |
| Template (IM / PI) | Purpose | Displayed in |
|---|---|---|
| Stock Transport Order Overdue | Warns warehouse clerks about delayed GRs for open STO items | Overdue Materials – Stock in Transit |
Physical Inventory Monitoring (MAN_PHYSICAL_INVENTORY_MONITOR) | Monitors e.g. documents not counted by the planned count date or count deviations outside a tolerance | Physical Inventory Document Overview |
Key users with business role SAP_BR_BPC_EXPERT create object-based situation types in Manage Situation Types and message-based types in Manage Situation Types – Message Based. Recipients are determined through Responsibility Management (Manage Teams and Responsibilities). Object-based instances are created whenever the conditions are met; message-based instances depend on the run settings of scheduled application jobs.
Users are informed through: a list entry in My Situations / My Situations – Message-Based; a situation message inside the business app; a Fiori launchpad notification; optional e-mail. The last three channels exist only for object-based situations. Business owners track occurrences with Monitor Situations.
Process flow
System steps
- In Manage Situation Types, tab Situation Templates, copy
MAN_PHYSICAL_INVENTORY_MONITOR. - Maintain admin data (ID, name, display sequence when several types exist for the same object).
- Define the conditions (filters, thresholds) and select Send Notification if launchpad notifications are wanted.
- Schedule the detection batch job (time zone, start time) where required.
- Adapt the in-app texts and notification texts; choose single or aggregated notifications and whether updates re-notify.
- Define recipients via teams/responsibility rules (create teams in Manage Teams and Responsibilities).
- Optionally flag Monitor Instances; create and enable the situation type.
Situation Handling is an S/4HANA-only framework, and SAP has added further situation templates and the message-based variant over successive releases; the available templates depend on your release, so verify them in the Manage Situation Types app.
- Functions: automatic detection of exceptional situations + notification of responsible users (not deleting documents, not message output).
- Template → type → instance; object-based vs. message-based.
- Recipients come from teams/responsibility management.
Lesson 4 · Applying Cycle Counting (Optional)
After this lesson you can
- Explain the cycle counting method and the CC indicator
- Set CC indicators by ABC analysis
- Create cycle counting physical inventory documents
Key concepts
Cycle counting counts selected materials several times per fiscal year – fast-moving or valuable items more often than others – while still guaranteeing that every stock unit is counted at least once a year (it is a complete inventory method). Unrestricted, quality inspection and blocked stock can be included.
Materials are grouped per plant by the cycle counting indicator (material master, plant data). Customizing (OMCO) defines per plant and indicator:
| Parameter | Meaning |
|---|---|
| Number of physical inventories per year | Converted into an interval in workdays using the plant's factory calendar |
| Float time | Tolerance window within which the count must take place |
| Percentage of total value | Share of consumption/requirement value used by the ABC analysis to assign the indicator |
The interval (not the count frequency) is what document creation uses. If the factory calendar changes later, the interval is not recalculated automatically – re-enter the indicators.
Setting the indicator
The CC indicator can be maintained manually or by the ABC analysis report RMCBIN00 (MIBC), per plant and material type, based either on consumption (corrected total consumption × valuation price) or on requirements (independent requirements, sales orders, dependent requirements, STO requirements × price). The report lists new and old indicator, value, share and cumulative share, and can update the material masters. An indicator fixed in the material master (shown highlighted in the report) cannot be changed by the report – only manually in the material master.
Example from the handbook: with A = 12 counts (56 % of value), B = 6 (28 %), C = 3 (14 %), D = 1 (2 %), 200 pumps split into 9 A-items (+1 fixed A-item), 21 B, 51 C and 118 D, totalling 517 counts per year.
Creating documents
Report RM07ICN1 (MICN) selects materials due within an interval of planned count dates. Planned count date = date of last count of unrestricted stock + interval of the CC indicator. Example: interval 10 workdays, last count Wednesday last week → due next Wednesday. You can first display a control list, which shows (1) units for which no document can be created, (2) units with an active, overdue inventory (excluded because a document is still open), (3) units due in the planning period, with overdue dates highlighted. The batch input session creates the documents; when differences are posted, the count date becomes the material's new "last count" date.
Process flow
Configuration (IMG)
SPRO › Materials Management › Inventory Management and Physical Inventory › Physical Inventory › Cycle Counting (OMCO)
- Cycle counting is a complete inventory; CC indicator defined per plant.
- Parameters: counts per year, float time, % of total value.
- CC indicator: manual or via ABC report (MIBC); fixed indicators only manually.
- Documents always created via batch input (MICN).
Lesson 5 · Applying Inventory Sampling (Optional)
After this lesson you can
- Explain the statistical principle of inventory sampling
- Describe stock management levels, stock population, strata and random selection
- Explain update and extrapolation
Key concepts
Inventory sampling counts only a random sample of stock management units and extrapolates the result to the total stock value. It is acceptable only if the result is as reliable as a full count: the counting error (smaller, because fewer items are counted) plus the extrapolation error must not exceed the total error of an equivalent full inventory. The method works well when values follow a Lorenz curve – roughly 80 % of units make up only 20 % of value. Those many low-value units are sampled, while the few high-value units are counted completely.
Each sampling is created with an area (Inventory Management or Warehouse Management) and an inventory sampling profile (OMCK) providing calculation currency and default parameters aimed at minimizing extrapolation error.
Steps of selection
- Select stock management levels – a level groups all units with the same material type, plant, storage location and stock type (in WM: warehouse number and storage type). Allowed levels are defined in OMCL; the sampling document chooses which participate. Units already in an active inventory are excluded.
- Form the stock population – all units of the chosen levels, divided into the complete-count area and the sampling area. A unit goes to complete count if: deletion flag set, book stock zero, certain ABC indicator, price above a limit, or value above a limit. An upper value limit restricts the sampling area; the sampling area is split into up to 1,000 value classes (class interval = upper limit / 1000, rounded up).
- Form strata – neighbouring classes are combined into strata using the Dalenius-Hodges method (needs number of elements per class and number of strata). Sample size and stratification parameters should be agreed with the external auditor.
- Random selection – per stratum, using an internal random number generator (linear congruence method). From this point levels, population and strata are fixed. A batch input session is generated (documents are not yet created), covering the sampled units plus all complete-count units.
The documents then go through the usual three phases (create, count, post). A posting block, if used, only applies between document creation and count entry.
Update and extrapolation
Counts and postings are stored in the PI documents; the sampling itself is refreshed only by an update, which reads newly posted counts, determines changes in book quantities/values and proposes follow-up random selections. Because uncounted units may still be moved, sampling is "permanent": a unit can change stratum or even move to the complete-count area (it must then be counted – a subsequent selection is proposed).
| Extrapolation | When |
|---|---|
| Provisional | Differences posted only for part of a stratum's units; repeatable, only the latest is saved |
| Final | All counts entered and posted, no further selection needed |
The SAP system uses stratified mean-value estimation. The result covers parameters, per-stratum figures, the sampling area, the complete-count area and the overall result; the full printout is the audit evidence.
Process flow
Configuration (IMG)
SPRO › Materials Management › Inventory Management and Physical Inventory › Physical Inventory › Inventory Sampling › Create Inventory Sampling Profiles (OMCK)
SPRO › Materials Management › Inventory Management and Physical Inventory › Physical Inventory › Inventory Sampling › Define Stock Management Levels (OMCL)
- Sampling is not a complete inventory; counting error + extrapolation error ≤ error of full inventory.
- Steps: select stock management levels → stock population → strata → random selection.
- High-value items go to the complete-count area.
- Random selection fixes all previous steps and generates a batch input session.
- Extrapolation: provisional vs. final; method: stratified mean-value estimation.
Unit summary & exam focus
T-codes in this unit
| T-code | Purpose |
|---|---|
| MI01 | Create physical inventory document |
| MI02 | Change physical inventory document |
| MI03 | Display physical inventory document |
| MI21 | Print physical inventory document |
| MI04 | Enter inventory count |
| MI05 | Change inventory count |
| MI11 | Recount |
| MI20 | List of inventory differences |
| MI07 | Post inventory differences |
| MB03 | Display material document |
| MI08 | Enter count and post differences |
| MI09 | Enter count without document |
| MI10 | Enter count without document and post differences |
| MI31–MI40 | Batch input reports (create, block, freeze, count, zero count, post) |
| SM35 | Batch input session management |
| OMJ2 | Tolerances for inventory differences |
| OMBP | Allow freezing of book inventory per storage location |
| OMCN | Default values for batch input |
| OMCO | Cycle counting indicators |
| MIBC | Set cycle counting indicator (ABC analysis) |
| MICN | Create PI documents for cycle counting (batch input) |
| OMCK | Inventory sampling profiles |
| OMCL | Stock management levels for sampling |
Self-check questions
- Which criteria define a stock management unit?
Answer
Material, plant, storage location, stock type, batch, valuation type and special stock (with partner). - What two things does the count date determine?
Answer
Which book quantity is compared (current vs. last period-end) and the posting period of the difference posting. - Must an item with zero difference be posted?
Answer
Yes – only the difference posting completes the physical inventory for that stock management unit. - What is the difference between posting block and freeze book inventory?
Answer
Posting block prevents goods movements; freezing allows movements but keeps the book quantity for the count fixed. Freezing must be allowed per storage location. - Which accounts are posted for a shortage in supplier consignment stock?
Answer
The shortage is treated as a withdrawal: debit expense from inventory differences, credit consignment liabilities (KON). - How do MI08, MI09 and MI10 differ?
Answer
MI08: count + post for an existing document; MI09: count without document (document generated); MI10: all three phases in one step. - Can the ABC report change a fixed CC indicator?
Answer
No; a fixed indicator can only be changed manually in the material master. - Which units end up in the complete-count area in inventory sampling?
Answer
Units meeting profile criteria: deletion flag, zero book stock, certain ABC indicator, price or value above a limit (and units above the upper value limit).