TaktSignal

Data trust and freshness

Stale ERP data creates false confidence: checking ERPNext stock before you plan production

Why late postings, unrecorded issues and stale syncs make ERPNext stock look more certain than it is, and a short check to run before planning production on it.

By Nguyen Dac Manh Cang · Published by TaktSignal · · 4 min read

Short answer. ERPNext stock is correct as of the last transaction someone posted. When postings lag the floor — transfers entered at the end of the shift, receipts entered days after the truck arrived, scrap never recorded — the number does not look wrong. It looks exact. Missing data is easy to notice; stale data is not, which is why it is more dangerous. Before planning production on a stock figure, check how fresh the postings behind it are and whether recent counts agree with it.

Why stale data is worse than missing data

A blank field makes people ask questions. A precise number — 20 m — ends the conversation. If that 20 m was true yesterday afternoon and the morning shift has since cut 15 m without posting the transfer, every plan built on it inherits the error, and nobody notices until the material is not on the rack.

The same happens one level up. A dashboard or export refreshed overnight shows yesterday's state with today's date at the top of the screen.

Where the gap between ERPNext and the floor comes from

Common sources in manufacturing:

  • Batch posting. Material Transfer for Manufacture and Manufacture entries posted in bulk at the end of a shift or day, so stock in the store and the work-in-progress warehouse is hours behind.
  • Backflushing by BOM. With Backflush Raw Materials Based On set to BOM in Manufacturing Settings, consumption is recorded at standard BOM quantities, not what was actually used. Extra usage, rework and waste stay invisible.
  • Unrecorded scrap and offcuts. Fabric ends, cut-offs and rejected parts that never get a Stock Entry.
  • Late receipts. Material physically arrives but the Purchase Receipt waits for paperwork or inspection, so stock looks short when it is not — and nobody counts it.
  • Backdated entries. Entries posted with an earlier date make ERPNext repost stock and valuation (Repost Item Valuation). Until reposting completes, some reports can disagree.
  • Delayed counts. Stock Reconciliation done quarterly, so drift accumulates for months.

None of this means ERPNext is wrong. It means ERPNext reflects what people recorded, when they recorded it. Stale stock is also one of the reasons a work order that looks covered cannot start on the day — the others are covered in “Material available” doesn't mean production can start.

Explained versus unexplained variance

For a work order, compare what should have been used (BOM quantity × good output) with what was accounted for (issued − returned − reusable offcuts):

  • Explained variance has a reason: recorded scrap, rework, an approved substitution.
  • Unexplained variance has none. It is the best single indicator that the stock figure for that material should not be trusted blindly.

A material with large unexplained variance is not a material shortage problem yet. It is a trust problem, and the shortage alerts that depend on it deserve less confidence.

A five-minute trust check before you plan

For each material that a critical work order depends on:

  1. When was it last posted? Open the Stock Ledger for the item and warehouse. If the latest entry is older than the work you know happened, the balance is behind.
  2. Do the reports agree? Compare Stock Ledger and Stock Balance for the item. The Stock Ledger Variance report lists ledger entries whose running balance is inconsistent — usually after backdated entries or incomplete reposting.
  3. Is reposting finished? Check Repost Item Valuation for queued or failed entries.
  4. When was it last counted? Look at recent Stock Reconciliation entries for the item. No count in months means the number is a calculation, not an observation.
  5. What did recent work orders really use? Compare Transferred and Consumed quantities on recent work orders with the BOM. A pattern of unexplained extra usage means the remaining stock is probably lower than shown.

Then adjust your confidence, not just your number: “we have 20 m, last posted 18 hours ago, last counted in June” is a different statement from “we have 20 m”.

Where TaktSignal fits

TaktSignal treats data trust as part of every alert. It tracks the freshness of four kinds of data separately — inventory, production, customer orders, items and BOMs — and shows the age of the last complete read. Unknown age is shown as unknown, never as fresh. When data an alert depends on is stale or incomplete, the alert's confidence drops and the reason is written on it. Its Reconciliation page splits work-order material variance into known and unexplained, and flags materials whose stock is doubtful. TaktSignal never corrects ERPNext; what to change there stays your decision. Understanding Data Trust · Sync and freshness.

TaktSignal is a Community Alpha, read-only toward ERPNext and not yet validated in real factories.

FAQ

Is a stale number better than no number? Only if you know it is stale. A number with its age attached supports a decision; a number without one can mislead it.

How often should stock be counted? It depends on the material. Fast-moving or high-variance materials that critical orders depend on deserve more frequent cycle counts than slow, stable ones.

Can a dashboard be stale even if ERPNext is current? Yes. Anything that copies ERPNext data — exports, BI extracts, external tools — is only as fresh as its last successful refresh. Look for the refresh time, and treat a missing one as a warning.