{"id":690,"date":"2026-06-18T06:25:05","date_gmt":"2026-06-18T06:25:05","guid":{"rendered":"https:\/\/torr.com.my\/blog\/?p=690"},"modified":"2026-06-25T03:16:24","modified_gmt":"2026-06-25T03:16:24","slug":"bump-test-vs-full-calibration","status":"publish","type":"post","link":"https:\/\/torr.com.my\/blog\/bump-test-vs-full-calibration\/","title":{"rendered":"Bump Test vs Full Calibration"},"content":{"rendered":"\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>What Malaysian Operators Are Getting Wrong<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A gas detector passes its weekly bump test. The safety officer logs it as checked. Three months later the same detector fails to alarm during an actual gas release because the sensor had drifted out of calibration, and no one had run a full calibration in over fourteen months.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is not a hypothetical. It is a recurring failure mode in industrial facilities across Malaysia, and it comes from a single misunderstanding: that a bump test and a full calibration are interchangeable. They are not.<\/p>\n\n\n\n<p class=\"has-x-large-font-size wp-block-paragraph\"><strong>What a bump test actually proves and what it doesn\u2019t<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A bump test exposes the detector to a known concentration of target gas at a level above the alarm threshold. If the detector alarms, the test passes. That is all it proves: that the detector will alarm when it detects gas above threshold.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A bump test does not verify accuracy. It does not confirm whether the detector is reading 20 ppm or 40 ppm when the actual concentration is 25 ppm. It does not verify response time. It does not confirm alarm thresholds are correctly set. And it produces no traceable, certified record of measurement performance.<\/p>\n\n\n\n<p class=\"has-white-color has-secondary-background-color has-text-color has-background has-link-color has-sml-medium-font-size wp-elements-79e7c6eee7f19b37e9fad5de4db046d9 wp-block-paragraph\" style=\"border-width:75px;border-top-left-radius:120px;border-top-right-radius:120px;border-bottom-left-radius:120px;border-bottom-right-radius:120px\"><em>A detector that passes a bump test every week can still carry significant measurement error that is enough to give a false sense of security when gas concentrations are rising slowly toward a dangerous level.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/torr.com.my\/blog\/wp-content\/uploads\/2026\/06\/calibration-process-table-1024x610.png\" alt=\"\" class=\"wp-image-713\" style=\"aspect-ratio:1.831865828092243;width:1024px;height:auto\" srcset=\"https:\/\/torr.com.my\/blog\/wp-content\/uploads\/2026\/06\/calibration-process-table-1024x610.png 1024w, https:\/\/torr.com.my\/blog\/wp-content\/uploads\/2026\/06\/calibration-process-table-300x179.png 300w, https:\/\/torr.com.my\/blog\/wp-content\/uploads\/2026\/06\/calibration-process-table-768x458.png 768w, https:\/\/torr.com.my\/blog\/wp-content\/uploads\/2026\/06\/calibration-process-table.png 1245w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-white-color has-secondary-background-color has-text-color has-background has-link-color has-sml-medium-font-size wp-elements-3bdc6f56a1316251059ce1be01021d6c wp-block-paragraph\" style=\"border-width:75px;border-top-left-radius:120px;border-top-right-radius:120px;border-bottom-left-radius:120px;border-bottom-right-radius:120px;margin-top:0;margin-bottom:0\"><em>A full calibration produces a calibration certificate, which is ideally from an ISO 17025 accredited laboratory capable of documenting the gas concentrations used, before-and-after readings, adjustments made, and the uncertainty of measurement.<\/em><\/p>\n\n\n\n<p class=\"has-x-large-font-size wp-block-paragraph\"><strong>Bump test vs full calibration and what each covers<\/strong><\/p>\n\n\n\n<style>\n  .ct-wrap { padding: 1rem 0; font-family: sans-serif; }\n  .ct-header { display: grid; grid-template-columns: 1.6fr 1fr 1fr; background: #0a518f; border-radius: 10px 10px 0 0; }\n  .ct-header-cell { padding: 16px 20px; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; display: flex; align-items: center; gap: 7px; }\n  .ct-body { border: 2px solid #0a518f; border-top: none; border-radius: 0 0 10px 10px; overflow: hidden; }\n  .ct-row { display: grid; grid-template-columns: 1.6fr 1fr 1fr; opacity: 0; transform: translateY(12px); transition: opacity 0.4s ease, transform 0.4s ease; }\n  .ct-row.visible { opacity: 1; transform: translateY(0); }\n  .ct-row.light { background: #fff; }\n  .ct-row.accent { background: #fe6b16; }\n  .ct-row:not(:last-child) { border-bottom: 1px solid rgba(10,81,143,0.12); }\n  .ct-row.accent:not(:last-child) { border-bottom: 1px solid rgba(255,255,255,0.18); }\n  .ct-cell { padding: 14px 20px; font-size: 13.5px; display: flex; align-items: center; gap: 8px; }\n  .ct-label-light { color: #1a1a1a; font-weight: 500; }\n  .ct-label-dark { color: #fff; font-weight: 500; }\n  .yes-badge { display: inline-flex; align-items: center; gap: 5px; background: #d4f0e2; color: #145c36; font-size: 12px; font-weight: 700; padding: 5px 11px; border-radius: 20px; }\n  .yes-badge-inv { display: inline-flex; align-items: center; gap: 5px; background: rgba(255,255,255,0.25); color: #fff; font-size: 12px; font-weight: 700; padding: 5px 11px; border-radius: 20px; border: 1.5px solid rgba(255,255,255,0.5); }\n  .no-badge { display: inline-flex; align-items: center; gap: 5px; background: #fde8e8; color: #a91e1e; font-size: 12px; font-weight: 700; padding: 5px 11px; border-radius: 20px; }\n  .no-badge-inv { display: inline-flex; align-items: center; gap: 5px; background: rgba(0,0,0,0.18); color: #fff; font-size: 12px; font-weight: 700; padding: 5px 11px; border-radius: 20px; border: 1.5px solid rgba(255,255,255,0.3); }\n  .lim-badge { display: inline-flex; align-items: center; gap: 5px; background: rgba(0,0,0,0.15); color: #fff; font-size: 12px; font-weight: 700; padding: 5px 11px; border-radius: 20px; border: 1.5px solid rgba(255,255,255,0.35); }\n  .ct-row.light:hover { background: #f0f6ff; transition: background 0.2s; }\n  .ct-row.accent:hover { background: #e55e0f; transition: background 0.2s; }\n<\/style>\n\n<div class=\"ct-wrap\">\n  <div class=\"ct-header\">\n    <div class=\"ct-header-cell\">\n      <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 11l3 3L22 4\"\/><path d=\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"\/><\/svg>\n      What it checks\n    <\/div>\n    <div class=\"ct-header-cell\">\n      <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v11m0 0h10m-10 0a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2m-6 0V9m6 5V9m0 0H9\"\/><\/svg>\n      Bump test\n    <\/div>\n    <div class=\"ct-header-cell\">\n      <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14\"\/><\/svg>\n      Full calibration\n    <\/div>\n  <\/div>\n\n  <div class=\"ct-body\">\n    <div class=\"ct-row light\">\n      <div class=\"ct-cell ct-label-light\">Detector alarms when gas is present<\/div>\n      <div class=\"ct-cell\"><span class=\"yes-badge\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>Yes<\/span><\/div>\n      <div class=\"ct-cell\"><span class=\"yes-badge\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>Yes<\/span><\/div>\n    <\/div>\n    <div class=\"ct-row accent\">\n      <div class=\"ct-cell ct-label-dark\">Measurement accuracy verified<\/div>\n      <div class=\"ct-cell\"><span class=\"no-badge-inv\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>No<\/span><\/div>\n      <div class=\"ct-cell\"><span class=\"yes-badge-inv\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>Yes<\/span><\/div>\n    <\/div>\n    <div class=\"ct-row light\">\n      <div class=\"ct-cell ct-label-light\">Sensor drift corrected<\/div>\n      <div class=\"ct-cell\"><span class=\"no-badge\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>No<\/span><\/div>\n      <div class=\"ct-cell\"><span class=\"yes-badge\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>Yes<\/span><\/div>\n    <\/div>\n    <div class=\"ct-row accent\">\n      <div class=\"ct-cell ct-label-dark\">Response time verified<\/div>\n      <div class=\"ct-cell\"><span class=\"no-badge-inv\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>No<\/span><\/div>\n      <div class=\"ct-cell\"><span class=\"yes-badge-inv\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>Yes<\/span><\/div>\n    <\/div>\n    <div class=\"ct-row light\">\n      <div class=\"ct-cell ct-label-light\">Alarm threshold confirmed correct<\/div>\n      <div class=\"ct-cell\"><span class=\"no-badge\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>No<\/span><\/div>\n      <div class=\"ct-cell\"><span class=\"yes-badge\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>Yes<\/span><\/div>\n    <\/div>\n    <div class=\"ct-row accent\">\n      <div class=\"ct-cell ct-label-dark\">Traceable calibration certificate issued<\/div>\n      <div class=\"ct-cell\"><span class=\"no-badge-inv\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>No<\/span><\/div>\n      <div class=\"ct-cell\"><span class=\"yes-badge-inv\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>Yes<\/span><\/div>\n    <\/div>\n    <div class=\"ct-row light\">\n      <div class=\"ct-cell ct-label-light\">ISO 17025 documentation available<\/div>\n      <div class=\"ct-cell\"><span class=\"no-badge\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>No<\/span><\/div>\n      <div class=\"ct-cell\"><span class=\"yes-badge\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>Yes (accredited lab)<\/span><\/div>\n    <\/div>\n    <div class=\"ct-row accent\">\n      <div class=\"ct-cell ct-label-dark\">Suitable for regulatory audit evidence<\/div>\n      <div class=\"ct-cell\"><span class=\"lim-badge\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>Limited<\/span><\/div>\n      <div class=\"ct-cell\"><span class=\"yes-badge-inv\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>Yes<\/span><\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n  const rows = document.querySelectorAll('.ct-row');\n  rows.forEach((row, i) => {\n    setTimeout(() => row.classList.add('visible'), 80 + i * 90);\n  });\n<\/script>\n\n\n\n<p class=\"has-x-large-font-size wp-block-paragraph\"><strong>Recommended gas detector maintenance cycle<\/strong><\/p>\n\n\n\n<style>\n  .ms-wrap { padding: 1rem 0; font-family: sans-serif; }\n  .ms-header { display: grid; grid-template-columns: 1fr 1.4fr 1.4fr; background: #0a518f; border-radius: 10px 10px 0 0; }\n  .ms-header-cell { padding: 16px 20px; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; display: flex; align-items: center; gap: 7px; }\n  .ms-body { border: 2px solid #0a518f; border-top: none; border-radius: 0 0 10px 10px; overflow: hidden; }\n  .ms-row { display: grid; grid-template-columns: 1fr 1.4fr 1.4fr; animation: fadeUp 0.5s ease both; }\n  .ms-row:nth-child(1) { animation-delay: 0.1s; }\n  .ms-row:nth-child(2) { animation-delay: 0.2s; }\n  .ms-row:nth-child(3) { animation-delay: 0.3s; }\n  .ms-row:nth-child(4) { animation-delay: 0.4s; }\n  @keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }\n  .ms-row.light { background: #fff; }\n  .ms-row.accent { background: #fe6b16; }\n  .ms-row:not(:last-child) { border-bottom: 1px solid rgba(10,81,143,0.12); }\n  .ms-row.accent:not(:last-child) { border-bottom: 1px solid rgba(255,255,255,0.18); }\n  .ms-cell { padding: 15px 20px; font-size: 13.5px; display: flex; align-items: flex-start; gap: 9px; }\n  .ms-cell svg { flex-shrink: 0; margin-top: 2px; }\n  .light-text { color: #1a1a1a; }\n  .light-muted { color: #555; }\n  .dark-text { color: #fff; }\n  .ms-row.light:hover { background: #f0f6ff; transition: background 0.2s; }\n  .ms-row.accent:hover { background: #e55e0f; transition: background 0.2s; }\n  .freq-pill { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 12px; padding: 5px 11px; border-radius: 20px; }\n  .freq-pill-light { background: #e8f1fb; color: #0a518f; }\n  .freq-pill-dark { background: rgba(255,255,255,0.22); color: #fff; border: 1.5px solid rgba(255,255,255,0.45); }\n<\/style>\n\n<div class=\"ms-wrap\">\n  <div class=\"ms-header\">\n    <div class=\"ms-header-cell\">\n      <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg>\n      Frequency\n    <\/div>\n    <div class=\"ms-header-cell\">\n      <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"\/><\/svg>\n      Activity\n    <\/div>\n    <div class=\"ms-header-cell\">\n      <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg>\n      What it provides\n    <\/div>\n  <\/div>\n\n  <div class=\"ms-body\">\n    <div class=\"ms-row light\">\n      <div class=\"ms-cell\">\n        <span class=\"freq-pill freq-pill-light\">\n          <svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"5\"\/><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"3\"\/><line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\"\/><line x1=\"4.22\" y1=\"4.22\" x2=\"5.64\" y2=\"5.64\"\/><line x1=\"18.36\" y1=\"18.36\" x2=\"19.78\" y2=\"19.78\"\/><line x1=\"1\" y1=\"12\" x2=\"3\" y2=\"12\"\/><line x1=\"21\" y1=\"12\" x2=\"23\" y2=\"12\"\/><line x1=\"4.22\" y1=\"19.78\" x2=\"5.64\" y2=\"18.36\"\/><line x1=\"18.36\" y1=\"5.64\" x2=\"19.78\" y2=\"4.22\"\/><\/svg>\n          Daily \/ Before use\n        <\/span>\n      <\/div>\n      <div class=\"ms-cell light-text\">\n        <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#0a518f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>\n        Visual check for damage, display, low battery\n      <\/div>\n      <div class=\"ms-cell light-muted\">\n        <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#0a518f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n        Basic readiness confirmation\n      <\/div>\n    <\/div>\n\n    <div class=\"ms-row accent\">\n      <div class=\"ms-cell\">\n        <span class=\"freq-pill freq-pill-dark\">\n          <svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"\/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"\/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"\/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"\/><\/svg>\n          Weekly\n        <\/span>\n      <\/div>\n      <div class=\"ms-cell dark-text\">\n        <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v11m0 0h10m-10 0a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2m-6 0V9m6 5V9m0 0H9\"\/><\/svg>\n        Bump test is a functional check with target gas\n      <\/div>\n      <div class=\"ms-cell dark-text\">\n        <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>\n        Confirms detector will alarm. Does not verify accuracy.\n      <\/div>\n    <\/div>\n\n    <div class=\"ms-row light\">\n      <div class=\"ms-cell\">\n        <span class=\"freq-pill freq-pill-light\">\n          <svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"\/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"\/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"\/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"\/><line x1=\"8\" y1=\"14\" x2=\"16\" y2=\"14\"\/><\/svg>\n          Every 3\u20136 months\n        <\/span>\n      <\/div>\n      <div class=\"ms-cell light-text\">\n        <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#0a518f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14\"\/><\/svg>\n        Full calibration covers span, zero, response time\n      <\/div>\n      <div class=\"ms-cell light-muted\">\n        <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#0a518f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"9\" y1=\"13\" x2=\"15\" y2=\"13\"\/><line x1=\"9\" y1=\"17\" x2=\"15\" y2=\"17\"\/><\/svg>\n        Accuracy verified. ISO 17025 certificate issued. Sensor drift corrected.\n      <\/div>\n    <\/div>\n\n    <div class=\"ms-row accent\">\n      <div class=\"ms-cell\">\n        <span class=\"freq-pill freq-pill-dark\">\n          <svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"\/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"\/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"\/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"\/><polyline points=\"8 14 10 16 14 12\"\/><\/svg>\n          Annually\n        <\/span>\n      <\/div>\n      <div class=\"ms-cell dark-text\">\n        <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42\"\/><\/svg>\n        Full service covers sensor replacement, filter, housing inspection\n      <\/div>\n      <div class=\"ms-cell dark-text\">\n        <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg>\n        Complete system health check. Manufacturer compliance.\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n\n\n<p class=\"has-x-large-font-size wp-block-paragraph\"><strong>What the regulations say and where the grey area is<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Manufacturer recommendations vary. Most specify a full calibration every 3 to 6 months. Malaysia\u2019s DOSH guidelines align with international best practice: bump tests alone are not considered sufficient for gas detectors used in life-safety applications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The grey area exists where there is no formal site policy. Without a written calibration programme and specifying which detectors, at what intervals, with what gas, by whom, with what documentation, facilities rely on habit and individual initiative. That is where gaps appear.<\/p>\n\n\n\n<p class=\"has-x-large-font-size wp-block-paragraph\"><strong>What Malaysia\u2019s climate adds to the equation<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sensor drift accelerates under high humidity and elevated temperatures, which characterize virtually every industrial site in Malaysia. Electrochemical sensors for toxic gas detection are particularly susceptible. A calibration interval that works in a temperate European climate may be too long for a facility in Sarawak or a coastal refinery in Johor. When in doubt, calibrate more frequently and document the readings.<\/p>\n\n\n\n<p class=\"has-white-color has-secondary-background-color has-text-color has-background has-link-color has-medium-font-size wp-elements-47e5cf9172d0c05476180700ee1cad86 wp-block-paragraph\" style=\"border-style:none;border-width:0px;border-top-left-radius:300px;border-top-right-radius:300px;border-bottom-left-radius:300px;border-bottom-right-radius:300px;margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--10);padding-bottom:var(--wp--preset--spacing--10)\"><strong>Calibrate with Torr Energy\u2019s Accredited Lab<\/strong> &#8211; Our calibration laboratory uses certified traceable gases and issues full documentation so your gas detector records stand up to any audit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-top:0;padding-bottom:0\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What Malaysian Operators Are Getting Wrong A gas detector passes its weekly bump test. The safety officer logs it as checked. Three months later the same detector fails to alarm during an actual gas release because the sensor had drifted out of calibration, and no one had run a full calibration in over fourteen months. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":712,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,68,42,69,43,70],"tags":[48,13],"class_list":["post-690","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-in-action","category-hazard-management","category-how-to-guides","category-industrial-safety","category-prevention-protection","category-risk-assessment-mitigation","tag-equipment-maintenance","tag-fire-and-gas"],"_links":{"self":[{"href":"https:\/\/torr.com.my\/blog\/wp-json\/wp\/v2\/posts\/690","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/torr.com.my\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/torr.com.my\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/torr.com.my\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/torr.com.my\/blog\/wp-json\/wp\/v2\/comments?post=690"}],"version-history":[{"count":28,"href":"https:\/\/torr.com.my\/blog\/wp-json\/wp\/v2\/posts\/690\/revisions"}],"predecessor-version":[{"id":762,"href":"https:\/\/torr.com.my\/blog\/wp-json\/wp\/v2\/posts\/690\/revisions\/762"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/torr.com.my\/blog\/wp-json\/wp\/v2\/media\/712"}],"wp:attachment":[{"href":"https:\/\/torr.com.my\/blog\/wp-json\/wp\/v2\/media?parent=690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/torr.com.my\/blog\/wp-json\/wp\/v2\/categories?post=690"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/torr.com.my\/blog\/wp-json\/wp\/v2\/tags?post=690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}