{"id":100275,"date":"2026-02-15T20:31:27","date_gmt":"2026-02-15T20:31:27","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100275"},"modified":"2026-07-16T01:09:42","modified_gmt":"2026-07-16T01:09:42","slug":"valve-leak-rate-iso5208","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/ro\/calculators\/valve-leak-rate-iso5208\/","title":{"rendered":"Valve Closure Test Record Comparator &#8211; Source Controlled"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Valve Closure Test Record Comparator\",\"description\":\"Compare a recorded valve closure-test observation with an acceptance criterion copied from the governing licensed standard, product standard or purchaser specification. No normative leakage table, pressure or duration is generated.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/valve-leak-rate-iso5208\/\",\"applicationCategory\":\"EngineeringApplication\",\"operatingSystem\":\"Any (Web Browser)\",\"browserRequirements\":\"JavaScript\",\"isAccessibleForFree\":true,\"inLanguage\":\"en\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"dateModified\":\"2026-07-16\"}\n<\/script>\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Valve Closure Test Record Comparator\",\"item\":\"https:\/\/vibromera.eu\/calculators\/valve-leak-rate-iso5208\/\"}]}\n<\/script>\n\n<style>\n#vlr-tool{--vlr-ink:#172033;--vlr-muted:#5c687a;--vlr-border:#d8e0e9;--vlr-soft:#f5f7fa;--vlr-blue:#155eef;--vlr-blue-soft:#edf4ff;--vlr-green:#18794e;--vlr-green-soft:#edf8f2;--vlr-red:#b42318;--vlr-red-soft:#fff1f0;--vlr-amber:#8a5b00;--vlr-amber-soft:#fff7df;max-width:980px;margin:0 auto;padding:24px 16px 48px;color:var(--vlr-ink);font:15px\/1.62 -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif}\n#vlr-tool *{box-sizing:border-box}\n#vlr-tool h1,#vlr-tool h2,#vlr-tool h3{line-height:1.22;color:var(--vlr-ink)}\n#vlr-tool h1{margin:8px 0 14px;font-size:clamp(28px,5vw,43px);letter-spacing:-.025em}\n#vlr-tool h2{margin:0 0 14px;font-size:23px}\n#vlr-tool h3{margin:21px 0 8px;font-size:17px}\n#vlr-tool p{margin:0 0 12px}\n.vlr-hero{padding:34px 28px;border:1px solid #c8d5e8;border-radius:18px;background:linear-gradient(135deg,#f9fbff,#eef4ff)}\n.vlr-kicker{margin:0;color:var(--vlr-blue);font-size:12px;font-weight:750;letter-spacing:.11em;text-transform:uppercase}\n.vlr-lead{max-width:780px;color:var(--vlr-muted);font-size:17px}\n.vlr-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}\n.vlr-badge{padding:5px 10px;border:1px solid #b9c9df;border-radius:999px;background:#fff;color:#33435d;font-size:12px;font-weight:650}\n.vlr-card{margin-top:22px;padding:24px;border:1px solid var(--vlr-border);border-radius:14px;background:#fff;box-shadow:0 8px 26px rgba(18,40,72,.055)}\n.vlr-warning{padding:17px;border-left:4px solid var(--vlr-amber);border-radius:8px;background:var(--vlr-amber-soft);color:#5b451a}\n.vlr-warning strong{color:#473200}\n.vlr-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}\n.vlr-field{min-width:0}\n.vlr-full{grid-column:1\/-1}\n.vlr-field[hidden]{display:none!important}\n#vlr-tool label{display:block;margin-bottom:6px;color:#334155;font-size:13px;font-weight:700}\n.vlr-hint{font-weight:450;color:#6c7788}\n#vlr-tool input[type=\"text\"],#vlr-tool select{width:100%;min-height:44px;padding:9px 11px;border:1.5px solid #bbc6d3;border-radius:8px;background:#fff;color:var(--vlr-ink);font:inherit}\n#vlr-tool input:focus,#vlr-tool select:focus{outline:3px solid rgba(21,94,239,.16);border-color:var(--vlr-blue)}\n.vlr-section-label{grid-column:1\/-1;margin:6px 0 -5px;padding-bottom:5px;border-bottom:1px solid var(--vlr-border);color:#42506a;font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}\n.vlr-confirmations{display:grid;gap:10px;margin:20px 0;padding:16px;border:1px solid var(--vlr-border);border-radius:10px;background:var(--vlr-soft)}\n.vlr-check{display:grid!important;grid-template-columns:20px 1fr;gap:9px;align-items:start;margin:0!important;color:#3d495c!important;font-weight:500!important}\n.vlr-check input{width:17px;height:17px;margin:3px 0 0;accent-color:var(--vlr-blue)}\n.vlr-actions{display:flex;gap:10px;flex-wrap:wrap}\n.vlr-button{min-height:43px;padding:9px 17px;border:1px solid var(--vlr-blue);border-radius:8px;background:var(--vlr-blue);color:#fff;font:700 14px\/1 inherit;cursor:pointer}\n.vlr-button:hover{background:#0f4ed0}\n.vlr-button-secondary{border-color:#aeb9c7;background:#fff;color:#344054}\n.vlr-button-secondary:hover{background:var(--vlr-soft)}\n.vlr-errors{display:none;margin-top:17px;padding:14px 16px;border-left:4px solid var(--vlr-red);border-radius:7px;background:var(--vlr-red-soft);color:#7a271a}\n.vlr-errors.vlr-show{display:block}\n.vlr-errors ul{margin:7px 0 0 20px;padding:0}\n.vlr-results{margin-top:20px;padding:20px;border:1px solid #bdd9cb;border-radius:12px;background:var(--vlr-green-soft)}\n.vlr-results.vlr-above{border-color:#e5b7b2;background:var(--vlr-red-soft)}\n.vlr-results[hidden]{display:none}\n.vlr-result-context{color:#52665a;font-size:13px}\n.vlr-primary{margin:9px 0 16px;color:var(--vlr-green);font-size:clamp(24px,4.5vw,35px);font-weight:800;letter-spacing:-.02em;overflow-wrap:anywhere}\n.vlr-results.vlr-above .vlr-primary{color:var(--vlr-red)}\n.vlr-output-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}\n.vlr-output{padding:12px;border:1px solid #cbded3;border-radius:8px;background:#fff}\n.vlr-output span{display:block;color:#667268;font-size:12px}\n.vlr-output strong{display:block;margin-top:3px;overflow-wrap:anywhere;color:#233d30;font-size:15px}\n.vlr-result-note{margin:15px 0 0;color:#485c50;font-size:13px}\n.vlr-callout{margin:16px 0;padding:14px 16px;border-left:4px solid var(--vlr-blue);border-radius:7px;background:var(--vlr-blue-soft);color:#29466e}\n.vlr-list{margin:0;padding-left:20px;color:var(--vlr-muted)}\n.vlr-list li{margin-bottom:8px}\n.vlr-table-wrap{overflow-x:auto}\n.vlr-table{width:100%;border-collapse:collapse;font-size:14px}\n.vlr-table th,.vlr-table td{padding:10px;border:1px solid var(--vlr-border);text-align:left;vertical-align:top}\n.vlr-table th{background:var(--vlr-soft);font-size:12px;text-transform:uppercase;letter-spacing:.035em}\n.vlr-source{padding:15px 0;border-top:1px solid var(--vlr-border)}\n.vlr-source:first-of-type{border-top:0}\n.vlr-source strong{display:block;margin-bottom:4px}\n.vlr-source p{color:var(--vlr-muted);font-size:14px}\n#vlr-tool a{color:#175cd3;text-decoration:underline;text-underline-offset:2px}\n.vlr-small{color:#697386;font-size:13px}\n#vlr-tool details{margin-top:12px;border:1px solid var(--vlr-border);border-radius:9px;background:#fff}\n#vlr-tool summary{padding:13px 15px;cursor:pointer;font-weight:750}\n.vlr-detail{padding:0 15px 15px;color:var(--vlr-muted)}\n.vlr-related{display:flex;gap:9px;flex-wrap:wrap}\n.vlr-related a{padding:8px 12px;border:1px solid var(--vlr-border);border-radius:8px;background:var(--vlr-soft);text-decoration:none!important;font-weight:650}\n@media(max-width:700px){.vlr-hero,.vlr-card{padding:20px}.vlr-grid,.vlr-output-grid{grid-template-columns:1fr}.vlr-full,.vlr-section-label{grid-column:auto}}\n@media print{#vlr-tool{max-width:none}.vlr-button,.vlr-confirmations{display:none}.vlr-card{box-shadow:none;break-inside:avoid}}\n<\/style>\n\n<main id=\"vlr-tool\">\n  <header class=\"vlr-hero\">\n    <p class=\"vlr-kicker\">Source-controlled comparison<\/p>\n    <h1>Valve Closure Test Record Comparator<\/h1>\n    <p class=\"vlr-lead\">Compare a recorded observation with an acceptance criterion copied from the governing licensed standard, valve product standard or purchaser specification. This page does not generate a normative leakage class, pressure, duration or test procedure.<\/p>\n    <div class=\"vlr-badges\"><span class=\"vlr-badge\">No embedded standards table<\/span><span class=\"vlr-badge\">No automatic class mapping<\/span><span class=\"vlr-badge\">No generated test pressure<\/span><span class=\"vlr-badge\">Explicit comparison only<\/span><\/div>\n  <\/header>\n\n  <section class=\"vlr-card\" aria-labelledby=\"vlr-compare-title\">\n    <h2 id=\"vlr-compare-title\">Record comparison<\/h2>\n    <div class=\"vlr-warning\"><strong>Do not begin a pressure test from this page.<\/strong> Pressure testing can be hazardous and ISO 5208 explicitly does not cover its safety aspects. An approved procedure, competent personnel, suitable equipment, exclusion controls and the applicable product\/purchaser requirements must already exist.<\/div>\n    <form id=\"vlr-form\" autocomplete=\"off\" novalidate>\n      <div class=\"vlr-grid\" style=\"margin-top:20px\">\n        <div class=\"vlr-section-label\">Governing requirement<\/div>\n        <div class=\"vlr-field vlr-full\"><label for=\"vlr-source\">Requirement source<\/label><input id=\"vlr-source\" type=\"text\" maxlength=\"240\" placeholder=\"Licensed standard, product standard or purchaser specification\" spellcheck=\"false\"><\/div>\n        <div class=\"vlr-field\"><label for=\"vlr-edition\">Edition \/ revision \/ clause or table record<\/label><input id=\"vlr-edition\" type=\"text\" maxlength=\"160\" placeholder=\"Record exactly as checked\" spellcheck=\"false\"><\/div>\n        <div class=\"vlr-field\"><label for=\"vlr-record\">Valve and test record ID<\/label><input id=\"vlr-record\" type=\"text\" maxlength=\"160\" placeholder=\"Valve serial, work order or report ID\" spellcheck=\"false\"><\/div>\n        <div class=\"vlr-field vlr-full\"><label for=\"vlr-criterion\">Acceptance criterion type<\/label><select id=\"vlr-criterion\"><option value=\"\">Select the copied criterion type<\/option><option value=\"quantitative\">Quantitative maximum leakage<\/option><option value=\"qualitative\">No visually detectable leakage<\/option><\/select><\/div>\n\n        <div class=\"vlr-section-label\">Criterion and observation<\/div>\n        <div class=\"vlr-field\" id=\"vlr-field-limit\" hidden><label for=\"vlr-limit\">Copied maximum leakage <span class=\"vlr-hint\">(must be greater than zero)<\/span><\/label><input id=\"vlr-limit\" type=\"text\" inputmode=\"decimal\" placeholder=\"Required\" spellcheck=\"false\"><\/div>\n        <div class=\"vlr-field\" id=\"vlr-field-measured\" hidden><label for=\"vlr-measured\">Recorded measured leakage <span class=\"vlr-hint\">(zero or greater)<\/span><\/label><input id=\"vlr-measured\" type=\"text\" inputmode=\"decimal\" placeholder=\"Required\" spellcheck=\"false\"><\/div>\n        <div class=\"vlr-field vlr-full\" id=\"vlr-field-unit\" hidden><label for=\"vlr-unit\">Common unit exactly as recorded<\/label><input id=\"vlr-unit\" type=\"text\" maxlength=\"40\" placeholder=\"For example mm\u00b3\/s; both values must use this same unit\" spellcheck=\"false\"><\/div>\n        <div class=\"vlr-field vlr-full\" id=\"vlr-field-observation\" hidden><label for=\"vlr-observation\">Recorded visual observation<\/label><select id=\"vlr-observation\"><option value=\"\">Select the recorded observation<\/option><option value=\"not-detected\">No visually detectable leakage was recorded<\/option><option value=\"detected\">Visually detectable leakage was recorded<\/option><\/select><\/div>\n\n        <div class=\"vlr-section-label\">Procedure record &#8211; copied, not calculated<\/div>\n        <div class=\"vlr-field\"><label for=\"vlr-medium\">Test medium and condition<\/label><input id=\"vlr-medium\" type=\"text\" maxlength=\"120\" placeholder=\"As stated in the approved record\" spellcheck=\"false\"><\/div>\n        <div class=\"vlr-field\"><label for=\"vlr-pressure\">Applied test pressure and pressure basis<\/label><input id=\"vlr-pressure\" type=\"text\" maxlength=\"120\" placeholder=\"Value, unit, gauge\/absolute basis\" spellcheck=\"false\"><\/div>\n        <div class=\"vlr-field\"><label for=\"vlr-duration\">Actual test duration<\/label><input id=\"vlr-duration\" type=\"text\" maxlength=\"120\" placeholder=\"Value and unit\" spellcheck=\"false\"><\/div>\n        <div class=\"vlr-field\"><label for=\"vlr-method\">Measurement\/observation method and resolution<\/label><input id=\"vlr-method\" type=\"text\" maxlength=\"180\" placeholder=\"Method and resolution\" spellcheck=\"false\"><\/div>\n      <\/div>\n\n      <div class=\"vlr-confirmations\" aria-label=\"Required confirmations\">\n        <label class=\"vlr-check\" for=\"vlr-confirm-source\"><input id=\"vlr-confirm-source\" type=\"checkbox\"><span>I copied the criterion from the applicable licensed edition and checked the valve product standard and purchaser specification; I did not infer equivalence between ISO, API and EN classes.<\/span><\/label>\n        <label class=\"vlr-check\" for=\"vlr-confirm-procedure\"><input id=\"vlr-confirm-procedure\" type=\"checkbox\"><span>I confirmed the valve type, seat\/closure arrangement, test medium, pressure basis, duration, direction and measurement method match the governing requirement.<\/span><\/label>\n        <label class=\"vlr-check\" for=\"vlr-confirm-safety\"><input id=\"vlr-confirm-safety\" type=\"checkbox\"><span>I understand this comparison does not approve the test procedure, establish pressure-test safety or issue final conformity\/acceptance.<\/span><\/label>\n      <\/div>\n      <div class=\"vlr-actions\"><button class=\"vlr-button\" type=\"submit\">Compare recorded criterion<\/button><button class=\"vlr-button vlr-button-secondary\" id=\"vlr-clear\" type=\"button\">Clear<\/button><\/div>\n      <div class=\"vlr-errors\" id=\"vlr-errors\" role=\"alert\" aria-live=\"assertive\"><\/div>\n    <\/form>\n\n    <section class=\"vlr-results\" id=\"vlr-results\" aria-live=\"polite\" hidden>\n      <h2>Comparison record<\/h2>\n      <p class=\"vlr-result-context\" id=\"vlr-result-context\"><\/p>\n      <div class=\"vlr-primary\" id=\"vlr-primary\"><\/div>\n      <div class=\"vlr-output-grid\">\n        <div class=\"vlr-output\"><span>Entered criterion<\/span><strong id=\"vlr-out-criterion\"><\/strong><\/div>\n        <div class=\"vlr-output\"><span>Recorded observation<\/span><strong id=\"vlr-out-observation\"><\/strong><\/div>\n        <div class=\"vlr-output\" id=\"vlr-output-ratio\"><span>Measured \/ maximum ratio<\/span><strong id=\"vlr-out-ratio\"><\/strong><\/div>\n        <div class=\"vlr-output\" id=\"vlr-output-margin\"><span>Numerical margin<\/span><strong id=\"vlr-out-margin\"><\/strong><\/div>\n        <div class=\"vlr-output\"><span>Applied pressure record<\/span><strong id=\"vlr-out-pressure\"><\/strong><\/div>\n        <div class=\"vlr-output\"><span>Duration record<\/span><strong id=\"vlr-out-duration\"><\/strong><\/div>\n      <\/div>\n      <p class=\"vlr-result-note\" id=\"vlr-out-procedure\"><\/p>\n      <p class=\"vlr-result-note\">This is a literal comparison with user-entered evidence. It does not assign an ISO\/API\/EN leakage rate, validate pressure or duration, prove measurement adequacy, or issue final valve acceptance.<\/p>\n    <\/section>\n  <\/section>\n\n  <section class=\"vlr-card\">\n    <h2>Comparison logic<\/h2>\n    <p>For a quantitative criterion, both values must already be in the same recorded unit. No drops-to-volume, bubbles-to-volume, gas-to-liquid or standard-to-standard conversion is performed.<\/p>\n    <div class=\"vlr-table-wrap\"><table class=\"vlr-table\"><thead><tr><th>Entered record<\/th><th>Comparison<\/th><th>Displayed status<\/th><\/tr><\/thead><tbody>\n      <tr><td>Measured leakage &lt;= copied positive maximum<\/td><td>Measured \/ maximum; margin = maximum &#8211; measured<\/td><td>Within entered numerical limit<\/td><\/tr>\n      <tr><td>Measured leakage &gt; copied positive maximum<\/td><td>Same full-precision comparison<\/td><td>Above entered numerical limit<\/td><\/tr>\n      <tr><td>No visually detectable leakage criterion<\/td><td>Compare only the recorded visual observation<\/td><td>Observation matches \/ does not match entered criterion<\/td><\/tr>\n    <\/tbody><\/table><\/div>\n    <div class=\"vlr-callout\"><strong>A recorded numerical zero is not the same as \u201cno visually detectable leakage.\u201d<\/strong> Zero can mean \u201cbelow the instrument resolution,\u201d while the qualitative criterion depends on the specified observation method and test duration. The two paths remain separate.<\/div>\n    <p class=\"vlr-small\">Numerical comparison uses finite IEEE 754 binary arithmetic and displays up to 12 significant digits. It does not round before deciding whether the entered measured value exceeds the entered maximum.<\/p>\n  <\/section>\n\n  <section class=\"vlr-card\">\n    <h2>Current standards status and boundary<\/h2>\n    <div class=\"vlr-source\"><strong>ISO 5208:2015, Edition 4 &#8211; Industrial valves, pressure testing of metallic valves.<\/strong><p>The official ISO record says the publication was last reviewed and confirmed in 2025 and remains current at stage 90.93. It covers examinations and tests used by a manufacturer to establish pressure-boundary integrity, closure tightness and structural adequacy. It is intended to be used with applicable valve product standards; where product-standard requirements differ, those requirements apply. ISO also states that pressure-test safety is outside this document&#8217;s scope.<\/p><a href=\"https:\/\/www.iso.org\/standard\/65111.html\" rel=\"noopener\" target=\"_blank\">Official ISO record<\/a><\/div>\n    <div class=\"vlr-source\"><strong>API Standard 598 &#8211; Valve Inspection and Testing.<\/strong><p>The official API standards plan lists the published 11th edition dated 8 February 2023 and a 12th-edition project in development. This page does not repeat an old class-equivalence claim or assume that an API acceptance rule can be substituted for an ISO rate.<\/p><a href=\"https:\/\/www.api.org\/products-and-services\/standards\/standards-plan\" rel=\"noopener\" target=\"_blank\">Official API standards plan<\/a><\/div>\n    <div class=\"vlr-source\"><strong>BS EN 12266-1:2012 &#8211; Mandatory requirements.<\/strong><p>The official BSI record lists it as Current, Under Review, published 30 April 2012. Its scope covers production testing of metallic industrial valves and says the applicable product\/performance standard prevails where requirements differ. Safety devices are excluded.<\/p><a href=\"https:\/\/knowledge.bsigroup.com\/products\/industrial-valves-testing-of-metallic-valves-pressure-tests-test-procedures-and-acceptance-criteria-mandatory-requirements\" rel=\"noopener\" target=\"_blank\">Official BSI record<\/a><\/div>\n    <div class=\"vlr-warning\"><strong>NEEDS_LICENSED_SOURCE:<\/strong> the former embedded leakage-rate coefficients, drops\/bubbles conversions, test-duration bands, pressure rules and ISO\/API\/EN class mappings were removed. They must not be restored until the exact licensed editions, applicable product standard, notes, units, boundaries and contractual precedence are checked line by line.<\/div>\n    <p class=\"vlr-small\">Official records checked 16 July 2026. No clause number, leakage coefficient, test pressure, duration or equivalence mapping is asserted from an inaccessible standard.<\/p>\n  <\/section>\n\n  <section class=\"vlr-card\">\n    <h2>Interpretation questions<\/h2>\n    <details><summary>Why does this page not calculate leakage Rate A-G from DN?<\/summary><div class=\"vlr-detail\">Those coefficients and notes are normative licensed content, and the applicable valve product standard or purchaser specification can alter the governing requirement. A copied criterion with source evidence is safer than an unverified web transcription.<\/div><\/details>\n    <details><summary>Why is there no automatic API 598 or EN 12266 mapping?<\/summary><div class=\"vlr-detail\">Different editions, valve types, seat constructions, sizes, media and contractual rules can change applicability. Similar-looking classes are not proof of equivalence.<\/div><\/details>\n    <details><summary>Why does the page not calculate test pressure or duration?<\/summary><div class=\"vlr-detail\">Those are procedural requirements, not universal functions of DN alone. They must be taken from the applicable standard\/product\/purchaser documents and an approved safe test procedure.<\/div><\/details>\n    <details><summary>Does \u201cwithin entered limit\u201d mean the valve is accepted?<\/summary><div class=\"vlr-detail\">No. It proves only the arithmetic comparison entered here. Acceptance also depends on correct documents, procedure, instrumentation, resolution, pressure, duration, valve configuration, witnessing and contractual authority.<\/div><\/details>\n  <\/section>\n\n  <section class=\"vlr-card\"><h2>Related tools<\/h2><div class=\"vlr-related\"><a href=\"\/calculators\/pressure-unit-converter\/\">Pressure unit converter<\/a><a href=\"\/calculators\/flow-rate-converter\/\">Flow-rate converter<\/a><a href=\"\/calculators\/valve-flow-coefficient\/\">Valve flow coefficient reference<\/a><\/div><\/section>\n  <p class=\"vlr-small\" style=\"margin-top:18px\">Revision: 16 July 2026. Result classification: user-entered record comparison; no normative criterion generated.<\/p>\n<\/main>\n\n<script>\n(function(){\n  'use strict';\n  function byId(id){return document.getElementById(id);}\n  var form=byId('vlr-form'),criterion=byId('vlr-criterion'),errors=byId('vlr-errors'),results=byId('vlr-results');\n  var quantitative=[byId('vlr-field-limit'),byId('vlr-field-measured'),byId('vlr-field-unit')],qualitative=byId('vlr-field-observation');\n  function decimalToken(raw,label,allowZero){\n    var s=String(raw).trim();\n    if(!s||s.length>40||!\/^(?:\\d+(?:[.,]\\d*)?|[.,]\\d+)$\/.test(s))throw new Error(label+' must be one complete unsigned decimal number. Scientific notation, grouped digits and unit text are not accepted.');\n    var value=Number(s.replace(',','.'));\n    if(!Number.isFinite(value)||value<0||(!allowZero&&value===0)||value>1e150)throw new Error(label+(allowZero?' must be finite, zero or greater and within the supported range.':' must be finite, greater than zero and within the supported range.'));\n    return value;\n  }\n  function requiredText(id,label,min){var value=byId(id).value.trim();if(value.length<(min||2))throw new Error('Enter '+label+'.');return value;}\n  function compare(kind,input){\n    if(kind==='quantitative'){\n      var ratio=input.measured\/input.limit,margin=input.limit-input.measured,within=input.measured<=input.limit;\n      if(!Number.isFinite(ratio)||!Number.isFinite(margin))throw new Error('The entered values do not produce a finite comparison.');\n      return{kind:kind,within:within,ratio:ratio,margin:margin};\n    }\n    if(kind==='qualitative')return{kind:kind,within:input.observation==='not-detected'};\n    throw new Error('Select a supported criterion type.');\n  }\n  function formatNumber(value){if(!Number.isFinite(value))return'not finite';var magnitude=Math.abs(value);if(value===0)return'0';if(magnitude>=1e9||magnitude<1e-6)return value.toExponential(10).replace(\/\\.0+e\/,'e').replace(\/(\\.\\d*?[1-9])0+e\/,'$1e');return Number(value.toPrecision(12)).toString();}\n  function hideState(){errors.textContent='';errors.classList.remove('vlr-show');results.hidden=true;results.classList.remove('vlr-above');}\n  function setCriterion(){var quantitativeMode=criterion.value==='quantitative',qualitativeMode=criterion.value==='qualitative';quantitative.forEach(function(field){field.hidden=!quantitativeMode;});qualitative.hidden=!qualitativeMode;hideState();}\n  function showErrors(messages){errors.textContent='';var strong=document.createElement('strong');strong.textContent='Comparison not performed.';errors.appendChild(strong);var list=document.createElement('ul');messages.forEach(function(message){var item=document.createElement('li');item.textContent=message;list.appendChild(item);});errors.appendChild(list);errors.classList.add('vlr-show');results.hidden=true;}\n  function render(input,comparison,context){\n    errors.textContent='';errors.classList.remove('vlr-show');results.classList.toggle('vlr-above',!comparison.within);\n    byId('vlr-result-context').textContent='Source: '+context.source+' \u00b7 '+context.edition+' \u00b7 Record: '+context.record;\n    if(comparison.kind==='quantitative'){\n      byId('vlr-primary').textContent=comparison.within?'WITHIN ENTERED NUMERICAL LIMIT':'ABOVE ENTERED NUMERICAL LIMIT';\n      byId('vlr-out-criterion').textContent='Maximum '+formatNumber(input.limit)+' '+input.unit;\n      byId('vlr-out-observation').textContent='Measured '+formatNumber(input.measured)+' '+input.unit;\n      byId('vlr-out-ratio').textContent=formatNumber(comparison.ratio);\n      byId('vlr-out-margin').textContent=formatNumber(comparison.margin)+' '+input.unit;\n      byId('vlr-output-ratio').hidden=false;byId('vlr-output-margin').hidden=false;\n    }else{\n      byId('vlr-primary').textContent=comparison.within?'OBSERVATION MATCHES ENTERED CRITERION':'OBSERVATION DOES NOT MATCH ENTERED CRITERION';\n      byId('vlr-out-criterion').textContent='No visually detectable leakage';\n      byId('vlr-out-observation').textContent=input.observation==='not-detected'?'No visually detectable leakage recorded':'Visually detectable leakage recorded';\n      byId('vlr-out-ratio').textContent='Not applicable';byId('vlr-out-margin').textContent='Not applicable';\n      byId('vlr-output-ratio').hidden=true;byId('vlr-output-margin').hidden=true;\n    }\n    byId('vlr-out-pressure').textContent=context.pressure;byId('vlr-out-duration').textContent=context.duration;\n    byId('vlr-out-procedure').textContent='Medium\/condition: '+context.medium+'. Method\/resolution: '+context.method+'. These records were copied; none was calculated or validated by this page.';\n    results.hidden=false;results.scrollIntoView({behavior:'smooth',block:'start'});\n  }\n  criterion.addEventListener('change',setCriterion);\n  form.addEventListener('submit',function(event){\n    event.preventDefault();var messages=[],kind=criterion.value,input={},context={},comparison;\n    if(kind!=='quantitative'&&kind!=='qualitative')messages.push('Select the copied acceptance criterion type.');\n    try{context.source=requiredText('vlr-source','the requirement source');}catch(error){messages.push(error.message);}\n    try{context.edition=requiredText('vlr-edition','the edition\/revision and clause or table record');}catch(error){messages.push(error.message);}\n    try{context.record=requiredText('vlr-record','the valve and test record ID');}catch(error){messages.push(error.message);}\n    if(kind==='quantitative'){\n      try{input.limit=decimalToken(byId('vlr-limit').value,'Copied maximum leakage',false);}catch(error){messages.push(error.message);}\n      try{input.measured=decimalToken(byId('vlr-measured').value,'Recorded measured leakage',true);}catch(error){messages.push(error.message);}\n      try{input.unit=requiredText('vlr-unit','the common recorded leakage unit');}catch(error){messages.push(error.message);}\n    }else if(kind==='qualitative'){input.observation=byId('vlr-observation').value;if(input.observation!=='not-detected'&&input.observation!=='detected')messages.push('Select the recorded visual observation.');}\n    try{context.medium=requiredText('vlr-medium','the test medium and condition');}catch(error){messages.push(error.message);}\n    try{context.pressure=requiredText('vlr-pressure','the applied pressure and pressure basis');}catch(error){messages.push(error.message);}\n    try{context.duration=requiredText('vlr-duration','the actual test duration');}catch(error){messages.push(error.message);}\n    try{context.method=requiredText('vlr-method','the measurement or observation method and resolution');}catch(error){messages.push(error.message);}\n    if(!byId('vlr-confirm-source').checked)messages.push('Confirm the governing source,edition and contractual precedence.');\n    if(!byId('vlr-confirm-procedure').checked)messages.push('Confirm the valve configuration and test-procedure records.');\n    if(!byId('vlr-confirm-safety').checked)messages.push('Confirm the safety and final-acceptance boundary.');\n    if(!messages.length){try{comparison=compare(kind,input);}catch(error){messages.push(error.message);}}\n    if(messages.length){showErrors(messages);return;}render(input,comparison,context);\n  });\n  byId('vlr-clear').addEventListener('click',function(){form.reset();setCriterion();criterion.focus();});\n  setCriterion();\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Compare a recorded valve closure-test observation with a licensed governing criterion without generating normative table values, pressure or duration.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100275","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/ro\/wp-json\/wp\/v2\/calculator\/100275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/ro\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/ro\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":4,"href":"https:\/\/vibromera.eu\/ro\/wp-json\/wp\/v2\/calculator\/100275\/revisions"}],"predecessor-version":[{"id":102617,"href":"https:\/\/vibromera.eu\/ro\/wp-json\/wp\/v2\/calculator\/100275\/revisions\/102617"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/ro\/wp-json\/wp\/v2\/media?parent=100275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/ro\/wp-json\/wp\/v2\/categories?post=100275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/ro\/wp-json\/wp\/v2\/tags?post=100275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}