Materials Management
Purchasing, read at the grain the money sits on
Purchase orders and their items, goods movements, supplier invoices and info records, with spend sitting on the item, where it actually lives.
See it answer one of theseAsk it
Questions you can ask on day one
Asked in plain language. Each answer prints the SAP entity, field and period it was computed from, underneath the figure.
- “Which suppliers have quietly become more expensive this year?”
- “What did we spend with each supplier last quarter?”
- “Which materials move most, by plant?”
- “Where are goods receipts running late against the purchase order date?”
- “Which purchase orders are still open past their delivery date?”
- “What is our average price per unit for material TG11 this year against last?”
What it reads
The procurement objects behind an answer
Purchase orders
Header level for how many, and item level for how much, because on this surface the header carries no order value at all.
Purchase order items
Net amount with its document currency, material, plant, quantity and delivery date: the grain where procurement spend actually sits.
Goods movements
Material document items: what moved, in which direction, at which plant and when.
Supplier invoices
Invoiced value by invoicing party, which is the same business entity as the supplier under a different field name.
Purchasing info records
The standing relationship between a material and a supplier, and the price it was agreed at.
Requisitions and contracts
What was asked for before it became an order, and the agreements orders are released against.
Why it is hard
What no standard report does for you
Spend is on the item, not the header
The purchase order header carries no order value on this surface, only a down payment and a release-time total. Every spend report has to know that, and every ad-hoc extract that does not quietly reports the wrong grain.
A supplier is named differently in different documents
It is the supplier on a purchase order and the invoicing party on a supplier invoice. Asking one question across both means knowing which field each document uses, which is exactly what you should not have to know to ask a question.
Price drift is invisible until the renewal
Nothing flags a six per cent move spread across eleven months and three plants. It is only visible if somebody compares the same material across two windows, which is the query nobody has time to write.
Procurement questions are comparisons
The useful procurement question is rarely what did we spend. It is what changed: which supplier moved, which material moved, and whether the movement is real or a mix effect from buying different things in different proportions.
AnrilX answers those by running the same read against two windows and computing the difference in code. Currency is never mixed: a figure carries the currency field its documents were written in, so a total spanning three currencies is split rather than silently added into a number that means nothing.
Where the money actually sits
This is the detail that catches most reporting over MM. On this SAP surface the purchase order header carries no order value, only a down payment figure and a release-time total. Spend is an item-level question; the header answers how many orders, and the line answers how much.
You should not have to know that to ask a question, and with AnrilX you do not. What the platform will not do is read the header, find something numeric, and present it as spend.
Processes that are configured and empty
Plenty of SAP landscapes carry purchasing processes that were switched on and never used: an RFQ flow, a supplier evaluation. Asked about one, AnrilX reports that it holds no records.
That is a different fact from “I could not find anything”, and it is the honest answer. The failure worth avoiding is a system that quietly answers a question about RFQs using purchase orders, because the numbers it returns will be entirely real.
In more detail
What makes Procurement hard to report on
Spend is an event, not a field
There is no column called spend. What you have is purchase orders, goods receipts and invoices, and the three disagree on purpose: ordered is a commitment, received is a liability, invoiced is a payable. A supplier who has quietly become more expensive shows up in one of them before the others, and which one depends on their lead time. Asking \"what did we spend\" without saying which event you mean produces a number that is defensible and not comparable to last quarter's.
Price variance hides at the item grain
A supplier can hold their list price and still cost you more: smaller order quantities against a scale, a changed freight condition, a currency movement, a switch of plant. Each of those lives at line-item level and none of them moves the headline contract price. The question worth asking is not what the price is but what the effective unit cost has done, per material, per supplier, over time, which is arithmetic across three documents rather than a lookup in one.
Three-way match failures are the interesting rows
Where PO, goods receipt and invoice disagree is where the money is, and those rows are exactly the ones a standard report suppresses as exceptions. Quantity variances, price variances and receipts with no invoice are each a different problem with a different owner. Counting them is easy; attributing them is the work, and attribution needs all three documents joined at the grain the discrepancy actually occurred on.
Open items are a question about time, not status
A purchase order is open until it is closed, which tells you nothing. The useful question is how long it has been open relative to its own lead time, and whether that is drifting for a particular supplier or plant. That is a comparison between a document date, a delivery date and today: three points a status field does not contain, and the reason \"how much is outstanding\" and \"what is late\" are different reports that get conflated into one.
One of these questions, answered
Which suppliers have quietly become more expensive this year?
Six suppliers are costing more per unit than they did in January without any contract price changing. Al-Majd Components is the clearest: the list price held at 318.00 SAR all year, but the effective unit cost rose 11.4% because order quantities fell below the scale break and freight moved to a per-delivery condition.
SAR
Source: zsd_i_purchaseorder / I_PurchaseOrderHistory · effective unit cost = (NetPriceAmount + freight and surcharge conditions) over quantity received · per Supplier and Material · monthly, 2026
Assumed: effective means what the goods receipt actually cost, including freight and surcharge conditions. Comparing list prices instead would have shown no change at all, which is why this question is asked at the receipt rather than at the contract.
Where it stops
What it will not answer here
The limits particular to this module. Worth knowing before a pilot rather than during one.
-
Spend is what the documents record, not what a contract commits. Value remaining on a framework agreement is read from the releases against it rather than inferred from the commitment.
-
Some purchasing processes may be configured but hold no records. Where that is the case the answer says the process is not in use here rather than reaching for a populated neighbour.
-
Header-to-item relationships are read as SAP defines them. Where a question needs a join the system does not model, it says so.
Questions people ask us
Why does 'how many orders' and 'how much did we spend' read different things?
Because they live at different grains. The count is a header question; the value is an item question, since the header carries no order value. AnrilX reads whichever entity can actually answer and tells you which one it read.
Can it compare prices over time?
Yes. The same read is run against two windows and the difference computed in code. That is how price drift becomes visible before a renewal rather than after one.
What if a procurement process is not in use here?
It reports that the process holds no records. An empty RFQ or supplier-evaluation flow is a fact worth stating, and much better than a real figure for something adjacent.
Questions often cross into
Orders, deliveries, billing, and the pricing underneath
Orders, deliveries, billing documents and the pricing conditions underneath them, read at header or line level, in the currency each document was written in.
Variance, margin, and what actually moved them
Cost centres, internal orders, profit centres and the postings behind them: variance against plan, with the drivers ranked rather than asserted.
Which orders are exposed to something that has not arrived
Production orders, operations and component demand: where a schedule is exposed to something that has not arrived yet.
Bring the question your reports cannot answer
Thirty minutes against a live SAP system we provide: no access to yours, nothing to set up. If it cannot answer, you find that out in half an hour rather than three months into a pilot.