{
  "id": 16149851,
  "title": "Hold Back to the Last Good Check: Modelling Metal Detector Tests, Sieve Checks and Foreign Body Holds in a Food ERP",
  "url": "https://urgent.news/2026/10/23/hold-back-to-the-last-good-check-modelling-metal-detector-tests-sieve",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-23T04:25:45.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/yit2022/hold-back-to-the-last-good-check-modelling-metal-detector-tests-sieve-checks-and-foreign-body-5gcg"
  },
  "original_language": "en",
  "account": "Metal detectors installed on food packing lines serve as sensors with a pass/fail output, ensuring the detection of foreign objects. A certified test piece is passed through the detector at the start of each shift, and the operator records whether the reject arm fired or not. Every factory system records this as a checklist row with a timestamp and operator signature, indicating whether the check was done or not. However, this record does not answer the crucial question when a check fails: which lots were packed between the last passing check and this failing one? This interval is known as the blast radius, and everything inside it needs to be held and re-inspected, while everything outside it can continue moving.\n\nThe author delves into how this issue can be modeled within an ERP (Enterprise Resource Planning) system for food and agro manufacturers in East Africa. The operational checklist is derived from food safety standards, including Codex CXC 1-1969, HACCP annex, EAS 39:2001, and Kenya's Food Hygiene Regulations. These standards emphasize the need for calibrated detection devices, timely isolation of affected products, and automatic rejection of contaminated food.\n\nThe author suggests modeling checks as events on a control point rather than as tasks. Each check is attached to a control point on a line, which includes details such as control point ID, line ID, type (metal detector, X-ray detector, sieve, magnet, etc.), and limits (e.g., ferrous and non-ferrous sphere sizes). Additionally, a maximum interval of time is set for each check, typically once per 8-hour shift. Two derived facts emerge from this model: the last good check per control point and the overdue status of checks that have not been completed within the set time interval.\n\nWhen a check fails, three actions are taken in a single transaction: a non-conformance record is opened with an owner, the control point, and the failing check; the lots identified through a range query are linked to the non-conformance; and the stock status of these lots is moved to QA hold, preventing them from being picked, transferred, or dispatched until they are released. The release of lots can occur through re-inspection on a working detector, reworking, or destruction. The quantity of destroyed products is recorded through an adjustment with a reason code that tracks back to the non-conformance, thereby providing an explanation for the write-off rather than unexplained stock count differences or poor batch yields.",
  "summary": "By Isaac Muthui, CEO, Tamalaki Business Network Ltd. Originally published at factoraerp.com . A metal detector on a food packing line is a sensor with a pass/fail output. Every shift, someone pushes a certified test piece through it inside a pack and writes down whether the reject arm fired. Most factory systems store that as a checklist row: timestamp, operator, \"OK\". That record answers \"was…",
  "key_points": [
    "Metal detectors on food packing lines act as sensors with pass/fail outputs.",
    "Last good check per control point identified to determine blast radius.",
    "Failed checks trigger non-conformance records, QA hold status, and destruction."
  ],
  "editors_take": "Integrating sensor failures directly into ERP workflows transforms food safety from a manual checklist into a precise mechanism for isolating contaminated batches and automating stock holds.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}