Stock as of a past date
The standard report for historical stock does not read history. It reads current stock and reverses every movement since, at query time, which is why it times out on wide selections and why two runs can disagree.
◆ The mechanismbackwards from now, at query time, every time.
SAP support note 2000331 states the design plainly: the report reads the current stock level and works backwards through movements to the requested date. Two consequences follow directly.
Wide date ranges and long material lists mean enormous reads, which is where the documented timeouts come from. And postings that occur during the run change the baseline mid-flight, which is why the same request can return different results, also documented, in note 1667353, alongside the negative-quantity artifacts.
None of this is a bug to be patched. It is what recomputing the past from the present costs. The report is fine for a narrow question about one material last week; it is the wrong machine for month-end valuation, audit evidence, or anything concurrent with live postings.
◆ Where it stopsthe requests that outgrow reconstruction.
| Request | What happens |
|---|---|
| Plant-wide stock at month end | A read across every movement since month end for every material. Timeouts and memory dumps at scale, per the support notes. |
| The same number, twice | Concurrent postings falsify the baseline, so a rerun during business hours may not match. Reconciliation on a moving answer. |
| Stock value trend by month | Twelve reconstructions, each priced as above. Teams archive spreadsheets instead, which is a snapshot table built by hand. |
| Anything older than archiving | Archived movements leave the reconstruction incomplete. The past ages out from under the report. |
◆ The owned answerstore the quantity once a day, read it forever.
A daily stock snapshot fact ends the recomputation: one row per material, plant, and storage location per day. Month-end valuation reads a partition. The trend is a filter. Concurrent postings cannot change a stored yesterday, and archiving in the source no longer erodes your history, because your history stopped depending on the source.
-- stock on any date, no reconstruction
SELECT plant, material, SUM(quantity) AS on_hand
FROM fct_stock_day
WHERE snapshot_date = DATE '2026-03-31'
GROUP BY 1, 2 ORDER BY 1, 2
The receipt-layer detail the snapshot also carries is what makes inventory aging possible, which the delivered data model cannot do at all. Same table, second page.
- SAP
- The vendor. Systems, Applications, and Products in data processing.
- HANA
- SAP’s in-memory database, the platform S/4 runs on.
- ERP
- Enterprise resource planning, the system of record for operations and finance.
- movement
- A goods receipt, issue, or transfer changing stock.
- storage location
- A stock subdivision within a plant.
- reconstruction
- Deriving a past value by reversing later activity out of the present one.
- snapshot
- A dated copy of a table state, kept so the past stays queryable.
- archiving
- Moving old documents out of the live database, beyond the reach of reports.