{"id":100169,"date":"2026-02-15T20:22:08","date_gmt":"2026-02-15T20:22:08","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100169"},"modified":"2026-04-05T15:38:58","modified_gmt":"2026-04-05T15:38:58","slug":"noise-exposure-calculator","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/bn\/calculators\/noise-exposure-calculator\/","title":{"rendered":"Noise Exposure Calculator \u2014 Permissible Time &#038; Dose"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Noise Exposure Calculator\",\"alternateName\":[\"Noise Dose Calculator\",\"Permissible Exposure Time Calculator\",\"TWA Calculator\"],\"description\":\"Free online calculator for permissible noise exposure time and dose per EU Directive 2003\/10\/EC and OSHA standards. Supports both 3 dB and 5 dB exchange rates.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/noise-exposure-calculator\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any (Web Browser)\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"datePublished\":\"2024-01-01\",\"dateModified\":\"2025-02-14\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true,\"featureList\":[\"EU Directive 2003\/10\/EC\",\"OSHA noise standard\",\"3 dB and 5 dB exchange rates\",\"Noise dose calculation\",\"TWA calculation\",\"Color-coded risk assessment\",\"Auto-calculation on input change\",\"URL parameter sharing\"],\"keywords\":\"noise exposure, noise dose, TWA, permissible exposure time, EU 2003\/10\/EC, OSHA\"}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\n{\"@type\":\"Question\",\"name\":\"What is noise dose?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Noise dose is a percentage measure of your actual noise exposure relative to the maximum permissible exposure. A dose of 100% means you have reached the full allowable daily noise exposure. For example, under EU standards, 8 hours at 85 dBA equals a 100% dose. Any dose above 100% exceeds the permissible limit and indicates a need for hearing protection and noise reduction measures.\"}},\n{\"@type\":\"Question\",\"name\":\"What is the difference between EU and OSHA noise standards?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The key difference is the exchange rate and reference level. EU Directive 2003\/10\/EC uses a 3 dB exchange rate with an 85 dBA reference level, meaning every 3 dB increase halves the permissible exposure time. OSHA uses a 5 dB exchange rate with a 90 dBA reference level, meaning every 5 dB increase halves the time. The EU standard is stricter and more scientifically accurate because the 3 dB rule reflects the actual doubling of acoustic energy.\"}},\n{\"@type\":\"Question\",\"name\":\"What is the exchange rate (3 dB vs 5 dB)?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The exchange rate (also called doubling rate or trading ratio) defines how much the noise level must increase to halve the permissible exposure time. A 3 dB exchange rate (used by EU, NIOSH, and most international standards) is based on the equal-energy principle \u2014 a 3 dB increase doubles the sound energy. A 5 dB exchange rate (used by OSHA) is more lenient and was historically adopted as a compromise. Most occupational health experts recommend the 3 dB rate as it better reflects hearing damage risk.\"}},\n{\"@type\":\"Question\",\"name\":\"What hearing protection should I use?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Choose hearing protection with a Noise Reduction Rating (NRR) sufficient to reduce exposure below 85 dBA. For moderate noise (85\u201395 dBA), foam earplugs (NRR 25\u201333) are usually adequate. For high noise (95\u2013110 dBA), combine earmuffs with earplugs (dual protection). For very high noise (>110 dBA), use custom-molded earplugs with maximum attenuation and limit exposure time. Always check the actual attenuation in practice \u2014 real-world NRR is typically 50\u201375% of the rated value.\"}},\n{\"@type\":\"Question\",\"name\":\"How is noise measured?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Noise is measured using a sound level meter (SLM) or noise dosimeter. A sound level meter measures the instantaneous sound pressure level in decibels (dB) with A-weighting (dBA) to approximate human hearing sensitivity. A noise dosimeter is worn by the worker throughout the shift and calculates the cumulative noise dose automatically. Measurements should follow ISO 9612 or OSHA guidelines, using slow response time and A-weighting. The microphone should be positioned near the worker's ear.\"}}\n]}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[\n{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},\n{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},\n{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Noise Exposure Calculator\",\"item\":\"https:\/\/vibromera.eu\/calculators\/noise-exposure-calculator\/\"}\n]}\n<\/script>\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&#038;family=JetBrains+Mono:wght@400;500;600&#038;family=Fraunces:opsz,wght@9..144,700;9..144,800&#038;display=swap\" rel=\"stylesheet\">\n\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.css\">\n\n<style>\n:root {\n    --vc-bg: #f4f1ec;\n    --vc-surface: #ffffff;\n    --vc-surface-alt: #f8f6f2;\n    --vc-ink: #1a1a1a;\n    --vc-ink-secondary: #5a5650;\n    --vc-ink-muted: #8a857e;\n    --vc-accent: #c85a2a;\n    --vc-accent-hover: #b04d22;\n    --vc-accent-light: #fdf0ea;\n    --vc-blue: #2a5c8c;\n    --vc-blue-light: #eaf1f8;\n    --vc-green: #2a7a4b;\n    --vc-green-light: #eaf8ef;\n    --vc-yellow: #a67c00;\n    --vc-yellow-light: #fef9e8;\n    --vc-red: #b91c1c;\n    --vc-red-light: #fef2f2;\n    --vc-border: #d9d4cc;\n    --vc-border-light: #e8e4dd;\n    --vc-shadow: 0 1px 3px rgba(26,26,26,0.06), 0 4px 12px rgba(26,26,26,0.04);\n    --vc-shadow-lg: 0 4px 12px rgba(26,26,26,0.08), 0 16px 40px rgba(26,26,26,0.06);\n    --vc-radius: 8px;\n    --vc-radius-lg: 12px;\n    --vc-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n    --vc-mono: 'JetBrains Mono', 'Consolas', 'Monaco', monospace;\n    --vc-display: 'Fraunces', Georgia, serif;\n}\n\n.vc-calculator {\n    font-family: var(--vc-font);\n    font-size: 15px;\n    line-height: 1.65;\n    color: var(--vc-ink);\n    max-width: 960px;\n    margin: 0 auto;\n    padding: 20px 16px 40px;\n    -webkit-font-smoothing: antialiased;\n}\n.vc-calculator *, .vc-calculator *::before, .vc-calculator *::after { box-sizing: border-box; }\n\n\/* \u2500\u2500 HEADER \u2500\u2500 *\/\n.vc-header { text-align: center; padding: 48px 24px 40px; position: relative; }\n.vc-header::after { content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:80px; height:3px; background:var(--vc-accent); border-radius:2px; }\n.vc-header-eyebrow { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:var(--vc-accent); margin:0 0 12px; }\n.vc-header-title { font-family:var(--vc-display); font-size:clamp(24px,4vw,36px); font-weight:800; line-height:1.15; color:var(--vc-ink); margin:0 0 16px; letter-spacing:-0.02em; }\n.vc-header-subtitle { font-size:15px; color:var(--vc-ink-secondary); margin:0 auto 20px; max-width:600px; }\n.vc-badges { display:inline-flex; gap:8px; flex-wrap:wrap; justify-content:center; }\n.vc-badge { font-family:var(--vc-mono); font-size:11px; font-weight:500; padding:4px 10px; border-radius:4px; background:var(--vc-surface); border:1px solid var(--vc-border); color:var(--vc-ink-secondary); }\n\n\/* \u2500\u2500 CARD \u2500\u2500 *\/\n.vc-card { background:var(--vc-surface); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); box-shadow:var(--vc-shadow); overflow:hidden; margin-top:32px; }\n\n\/* \u2500\u2500 FORM \u2500\u2500 *\/\n.vc-form { padding:24px; }\n.vc-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }\n@media(max-width:600px) { .vc-form-grid { grid-template-columns:1fr; } }\n.vc-field { display:flex; flex-direction:column; }\n.vc-field-full { grid-column: 1 \/ -1; }\n.vc-label { font-size:12px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--vc-ink-secondary); margin-bottom:6px; }\n.vc-label-hint { font-weight:400; text-transform:none; letter-spacing:0; color:var(--vc-ink-muted); font-size:11px; }\n.vc-select, .vc-input { width:100%; padding:10px 12px; border:1.5px solid var(--vc-border); border-radius:6px; font-family:var(--vc-font); font-size:14px; color:var(--vc-ink); background:var(--vc-surface); transition:border-color 0.15s, box-shadow 0.15s; }\n.vc-select { padding-right:36px; appearance:none; -webkit-appearance:none; cursor:pointer; background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='none' stroke='%235a5650' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'\/%3E%3C\/svg%3E\"); background-repeat:no-repeat; background-position:right 10px center; }\n.vc-select:focus, .vc-input:focus { outline:none; border-color:var(--vc-accent); box-shadow:0 0 0 3px rgba(200,90,42,0.12); }\n.vc-select:hover, .vc-input:hover { border-color:var(--vc-ink-muted); }\n\n\/* \u2500\u2500 PRESETS \u2500\u2500 *\/\n.vc-presets { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; padding-top:18px; border-top:1px solid var(--vc-border-light); }\n.vc-presets-label { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); width:100%; margin-bottom:2px; }\n.vc-preset-btn { padding:5px 12px; font-family:var(--vc-font); font-size:12px; font-weight:500; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\n.vc-preset-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\n\n\/* \u2500\u2500 RESULTS \u2500\u2500 *\/\n.vc-results { border-top:1px solid var(--vc-border-light); background:var(--vc-surface-alt); padding:0; max-height:0; overflow:hidden; transition:max-height 0.5s cubic-bezier(0.4,0,0.2,1), padding 0.3s; }\n.vc-results.vc-visible { max-height:3000px; padding:24px; }\n.vc-results-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }\n.vc-results-title { font-family:var(--vc-display); font-size:20px; font-weight:700; color:var(--vc-ink); margin:0; }\n.vc-copy-btn { display:inline-flex; align-items:center; gap:5px; padding:6px 12px; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface); font-family:var(--vc-font); font-size:12px; font-weight:500; color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\n.vc-copy-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); }\n.vc-copy-btn.vc-copied { background:var(--vc-green-light); border-color:var(--vc-green); color:var(--vc-green); }\n\n.vc-result-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:20px; }\n@media(max-width:500px) { .vc-result-grid { grid-template-columns:1fr; } }\n.vc-rcard { background:var(--vc-surface); border:1px solid var(--vc-border-light); border-radius:var(--vc-radius); padding:16px; transition:transform 0.2s; }\n.vc-rcard:hover { transform:translateY(-1px); }\n.vc-rcard-primary { border-color:var(--vc-accent); border-width:2px; background:linear-gradient(135deg, #fdf6f2 0%, var(--vc-surface) 100%); grid-column:1 \/ -1; }\n.vc-rcard-label { font-family:var(--vc-mono); font-size:10px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); margin-bottom:4px; }\n.vc-rcard-value { font-family:var(--vc-mono); font-size:22px; font-weight:600; color:var(--vc-ink); line-height:1.2; }\n.vc-rcard-primary .vc-rcard-value { font-size:30px; color:var(--vc-accent); }\n.vc-rcard-unit { font-size:14px; font-weight:400; color:var(--vc-ink-secondary); }\n\n\/* \u2500\u2500 RISK EVALUATION \u2500\u2500 *\/\n.vc-risk-eval { display:flex; align-items:center; gap:12px; padding:14px 16px; border-radius:var(--vc-radius); margin-bottom:16px; font-size:14px; font-weight:700; }\n.vc-risk-dot { display:inline-block; width:16px; height:16px; border-radius:50%; flex-shrink:0; }\n.vc-risk-green { background:var(--vc-green-light); color:var(--vc-green); border:1px solid var(--vc-green); }\n.vc-risk-yellow { background:var(--vc-yellow-light); color:var(--vc-yellow); border:1px solid var(--vc-yellow); }\n.vc-risk-orange { background:var(--vc-accent-light); color:var(--vc-accent); border:1px solid var(--vc-accent); }\n.vc-risk-red { background:var(--vc-red-light); color:var(--vc-red); border:1px solid var(--vc-red); }\n\n\/* \u2500\u2500 RISK BAR \u2500\u2500 *\/\n.vc-risk-bar-wrap { margin-bottom:16px; }\n.vc-risk-bar { display:flex; height:32px; border-radius:6px; overflow:hidden; position:relative; }\n.vc-risk-bar-seg { display:flex; align-items:center; justify-content:center; font-family:var(--vc-mono); font-size:10px; font-weight:600; color:#fff; }\n.vc-risk-bar-seg.seg-a { background:var(--vc-green); }\n.vc-risk-bar-seg.seg-b { background:var(--vc-yellow); }\n.vc-risk-bar-seg.seg-c { background:var(--vc-accent); }\n.vc-risk-bar-seg.seg-d { background:var(--vc-red); }\n.vc-risk-marker { position:absolute; top:-4px; width:3px; height:40px; background:var(--vc-ink); border-radius:2px; z-index:10; transition:left 0.3s; }\n.vc-risk-marker::after { content:'\u25bc'; position:absolute; top:-14px; left:50%; transform:translateX(-50%); font-size:11px; color:var(--vc-ink); }\n\n\/* \u2500\u2500 EU INFO \u2500\u2500 *\/\n.vc-eu-info { background:var(--vc-blue-light); border-left:3px solid var(--vc-blue); padding:14px 16px; border-radius:0 6px 6px 0; margin-bottom:16px; font-size:13px; line-height:1.8; color:var(--vc-ink-secondary); }\n.vc-eu-info strong { color:var(--vc-ink); }\n\n\/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\n.vc-section { margin-top:24px; border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); background:var(--vc-surface); box-shadow:var(--vc-shadow); overflow:hidden; }\n.vc-section-toggle { width:100%; display:flex; align-items:center; justify-content:space-between; padding:18px 24px; border:none; background:transparent; cursor:pointer; font-family:var(--vc-font); text-align:left; transition:background 0.15s; }\n.vc-section-toggle:hover { background:var(--vc-surface-alt); }\n.vc-section-toggle-text { display:flex; align-items:center; gap:10px; }\n.vc-section-icon { font-size:20px; line-height:1; }\n.vc-section-title { font-family:var(--vc-display); font-size:18px; font-weight:700; color:var(--vc-ink); margin:0; }\n.vc-section-chevron { width:20px; height:20px; color:var(--vc-ink-muted); transition:transform 0.3s; flex-shrink:0; }\n.vc-section.vc-open .vc-section-chevron { transform:rotate(180deg); }\n.vc-section-body { max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1); }\n.vc-section.vc-open .vc-section-body { max-height:20000px; }\n.vc-section-inner { padding:0 24px 24px; border-top:1px solid var(--vc-border-light); }\n\n\/* \u2500\u2500 THEORY \u2500\u2500 *\/\n.vc-theory h3 { font-family:var(--vc-display); font-size:17px; font-weight:700; color:var(--vc-ink); margin:28px 0 10px; }\n.vc-theory h3:first-child { margin-top:20px; }\n.vc-theory p { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 10px; }\n.vc-theory ul, .vc-theory ol { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 12px 18px; padding:0; }\n.vc-theory li { margin-bottom:5px; }\n.vc-formula-box { background:var(--vc-surface-alt); border:2px solid var(--vc-border); border-radius:6px; padding:14px 20px; font-family:var(--vc-mono); font-size:16px; font-weight:500; text-align:center; margin:14px 0; color:var(--vc-ink); overflow-x:auto; }\n.vc-info-box { background:var(--vc-blue-light); border-left:3px solid var(--vc-blue); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\n.vc-info-box p { margin:0; font-size:14px; color:var(--vc-ink-secondary); }\n.vc-warning-box { background:var(--vc-yellow-light); border-left:3px solid var(--vc-yellow); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\n.vc-example-box { background:var(--vc-surface-alt); border:1px solid var(--vc-border-light); border-radius:6px; padding:16px; margin:14px 0; }\n.vc-example-title { font-family:var(--vc-mono); font-size:13px; font-weight:600; color:var(--vc-accent); margin-bottom:8px; }\n.vc-table { width:100%; border-collapse:collapse; margin:14px 0; font-size:13px; }\n.vc-table th, .vc-table td { padding:10px 12px; border:1px solid var(--vc-border-light); text-align:left; }\n.vc-table th { background:var(--vc-surface-alt); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--vc-ink-secondary); }\n.vc-table tr:nth-child(even) { background:var(--vc-surface-alt); }\n@media(max-width:600px) { .vc-table { font-size:12px; } .vc-table th, .vc-table td { padding:8px; } }\n\n\/* \u2500\u2500 FAQ \u2500\u2500 *\/\n.vc-faq-list { display:flex; flex-direction:column; gap:8px; margin-top:20px; }\n.vc-faq-item { border:1px solid var(--vc-border-light); border-radius:6px; overflow:hidden; }\n.vc-faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border:none; background:var(--vc-surface-alt); cursor:pointer; font-family:var(--vc-font); font-size:15px; font-weight:600; color:var(--vc-ink); text-align:left; transition:background 0.15s; }\n.vc-faq-q:hover { background:#ede9e3; }\n.vc-faq-chevron { width:16px; height:16px; color:var(--vc-ink-muted); flex-shrink:0; transition:transform 0.25s; }\n.vc-faq-item.vc-open .vc-faq-chevron { transform:rotate(180deg); }\n.vc-faq-a { max-height:0; overflow:hidden; transition:max-height 0.35s; }\n.vc-faq-item.vc-open .vc-faq-a { max-height:1200px; }\n.vc-faq-a-inner { padding:14px 16px; border-top:1px solid var(--vc-border-light); font-size:14px; color:var(--vc-ink-secondary); }\n.vc-faq-a-inner p { margin:0 0 8px; }\n.vc-faq-a-inner p:last-child { margin-bottom:0; }\n.vc-faq-a-inner ul { margin:4px 0 8px 16px; padding:0; }\n.vc-faq-a-inner li { margin-bottom:3px; }\n\n\/* \u2500\u2500 RELATED \u2500\u2500 *\/\n.vc-related { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }\n.vc-related-link { display:inline-block; padding:8px 16px; font-family:var(--vc-font); font-size:13px; font-weight:600; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); border:1px solid var(--vc-border); border-radius:var(--vc-radius); text-decoration:none; transition:all 0.15s; }\n.vc-related-link:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\n\n\/* \u2500\u2500 PROMO \u2500\u2500 *\/\n.vc-promo { margin-top:24px; padding:20px; background:linear-gradient(135deg, var(--vc-accent-light), var(--vc-surface)); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); display:flex; align-items:center; gap:16px; }\n.vc-promo-text { flex:1; font-size:14px; color:var(--vc-ink-secondary); }\n.vc-promo-text strong { color:var(--vc-ink); }\n.vc-promo-link { padding:8px 20px; font-size:13px; font-weight:700; color:#fff; background:var(--vc-accent); border-radius:var(--vc-radius); text-decoration:none; white-space:nowrap; transition:background 0.15s; }\n.vc-promo-link:hover { background:var(--vc-accent-hover); }\n\n\/* \u2500\u2500 FOOTER \u2500\u2500 *\/\n.vc-footer { text-align:center; padding:32px 16px; font-size:13px; color:var(--vc-ink-muted); }\n.vc-footer a { color:var(--vc-accent); text-decoration:none; }\n.vc-footer a:hover { text-decoration:underline; }\n.vc-footer-links { margin-top:8px; font-size:12px; }\n.vc-footer-links a { margin:0 8px; }\n\n\/* \u2500\u2500 PRINT \u2500\u2500 *\/\n@media print {\n    .vc-section-body { max-height:none!important; }\n    .vc-faq-a { max-height:none!important; }\n    .vc-results { max-height:none!important; padding:24px!important; }\n    .vc-copy-btn, .vc-section-chevron, .vc-faq-chevron, .vc-presets, .vc-promo { display:none!important; }\n}\n<\/style>\n\n<div class=\"vc-calculator\" id=\"vc-noise-exposure\">\n\n<!-- Header -->\n<header class=\"vc-header\">\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool<\/p>\n    <h1 class=\"vc-header-title\">Noise Exposure Calculator<\/h1>\n    <p class=\"vc-header-subtitle\">Calculate permissible noise exposure time and dose per EU Directive 2003\/10\/EC and OSHA standards. Enter noise level and exposure duration for color-coded risk assessment.<\/p>\n    <div class=\"vc-badges\">\n        <span class=\"vc-badge\">EU 2003\/10\/EC<\/span>\n        <span class=\"vc-badge\">OSHA<\/span>\n        <span class=\"vc-badge\">3 dB \/ 5 dB Exchange Rate<\/span>\n    <\/div>\n<\/header>\n\n<!-- Calculator Card -->\n<div class=\"vc-card\">\n    <form class=\"vc-form\" id=\"vc-form\" autocomplete=\"off\">\n        <div class=\"vc-form-grid\">\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-noise-level\">Noise Level <span class=\"vc-label-hint\">(dBA)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-noise-level\" inputmode=\"decimal\" step=\"any\" min=\"0\" max=\"200\" placeholder=\"e.g. 92\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-exposure-time\">Exposure Time <span class=\"vc-label-hint\">(hours)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-exposure-time\" inputmode=\"decimal\" step=\"any\" min=\"0\" max=\"24\" value=\"8\" placeholder=\"e.g. 8\">\n            <\/div>\n            <div class=\"vc-field vc-field-full\">\n                <label class=\"vc-label\" for=\"vc-standard\">Standard<\/label>\n                <select class=\"vc-select\" id=\"vc-standard\">\n                    <option value=\"eu\" selected>EU Directive 2003\/10\/EC (3 dB exchange rate)<\/option>\n                    <option value=\"osha\">OSHA (5 dB exchange rate)<\/option>\n                <\/select>\n            <\/div>\n        <\/div>\n\n        <!-- Presets -->\n        <div class=\"vc-presets\">\n            <div class=\"vc-presets-label\">Quick presets<\/div>\n            <button type=\"button\" class=\"vc-preset-btn\" data-level=\"65\" data-time=\"8\" data-std=\"eu\">Office 65 dBA \/ 8h<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-level=\"85\" data-time=\"8\" data-std=\"eu\">Factory 85 dBA \/ 8h<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-level=\"95\" data-time=\"4\" data-std=\"eu\">Grinding 95 dBA \/ 4h<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-level=\"105\" data-time=\"1\" data-std=\"eu\">Hammer mill 105 dBA \/ 1h<\/button>\n        <\/div>\n    <\/form>\n\n    <!-- Results -->\n    <div class=\"vc-results\" id=\"vc-results\">\n        <div class=\"vc-results-head\">\n            <h2 class=\"vc-results-title\">Results<\/h2>\n            <button type=\"button\" class=\"vc-copy-btn\" id=\"vc-copy-btn\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg>\n                Copy\n            <\/button>\n        <\/div>\n\n        <div class=\"vc-result-grid\">\n            <div class=\"vc-rcard vc-rcard-primary\">\n                <div class=\"vc-rcard-label\">Permissible Exposure Time<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-perm-time\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Noise Dose<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-dose\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">TWA (8-hour equivalent)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-twa\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Noise Level<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-level\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Standard<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-standard\" style=\"font-size:14px\">\u2014<\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Risk evaluation -->\n        <div class=\"vc-risk-eval\" id=\"vc-risk-eval\">\n            <span class=\"vc-risk-dot\" id=\"vc-risk-dot\"><\/span>\n            <span id=\"vc-risk-text\">\u2014<\/span>\n        <\/div>\n\n        <!-- Risk bar -->\n        <div class=\"vc-risk-bar-wrap\">\n            <div class=\"vc-risk-bar\" id=\"vc-risk-bar\"><\/div>\n        <\/div>\n\n        <!-- EU action values -->\n        <div class=\"vc-eu-info\" id=\"vc-eu-info\" style=\"display:none\">\n            <strong>EU Directive 2003\/10\/EC Action &amp; Limit Values:<\/strong><br>\n            <span id=\"vc-eu-lower\"><\/span><br>\n            <span id=\"vc-eu-upper\"><\/span><br>\n            <span id=\"vc-eu-limit\"><\/span>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Theory & Formulas -->\n<div class=\"vc-section vc-open\" id=\"vc-sec-theory\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"true\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udcd8<\/span>\n            <span class=\"vc-section-title\">Theory &amp; Formulas<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner vc-theory\">\n            <h3>Permissible Exposure Time<\/h3>\n            <p>The permissible exposure time is calculated from the noise level, a reference level, and the exchange rate:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-1\"><\/div>\n\n            <h3>Noise Dose<\/h3>\n            <p>The noise dose as a percentage of the permissible limit:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-2\"><\/div>\n\n            <h3>Time-Weighted Average (TWA)<\/h3>\n            <p>The 8-hour equivalent noise level:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-3\"><\/div>\n\n            <p>Where:<\/p>\n            <ul>\n                <li><strong>L<\/strong> \u2014 measured noise level (dBA)<\/li>\n                <li><strong>L<sub>ref<\/sub><\/strong> \u2014 reference level: 85 dBA (EU) or 90 dBA (OSHA)<\/li>\n                <li><strong>ER<\/strong> \u2014 exchange rate: 3 dB (EU) or 5 dB (OSHA)<\/li>\n                <li><strong>t<\/strong> \u2014 actual exposure time (hours)<\/li>\n                <li><strong>T<sub>permitted<\/sub><\/strong> \u2014 maximum permissible exposure time (hours)<\/li>\n            <\/ul>\n\n            <h3>Practical Example<\/h3>\n            <div class=\"vc-example-box\">\n                <div class=\"vc-example-title\">Example \u2014 Worker exposed to 92 dBA for 6 hours (EU standard)<\/div>\n                <p>T = 8 \/ 2<sup>(92\u221285)\/3<\/sup> = 8 \/ 2<sup>2.333<\/sup> = 8 \/ 5.04 = <strong>1.59 hours<\/strong><\/p>\n                <p>Dose = (6 \/ 1.59) \u00d7 100% = <strong>378%<\/strong><\/p>\n                <p>TWA = 92 + 10 \u00d7 log\u2081\u2080(6\/8) = 92 \u2212 1.25 = <strong>90.8 dBA<\/strong><\/p>\n                <p>Risk: Dose 378% > 200% \u2192 <strong style=\"color:var(--vc-red)\">Danger \u2014 immediate action required<\/strong><\/p>\n            <\/div>\n\n            <div class=\"vc-warning-box\">\n                <p style=\"margin:0;font-size:14px;color:var(--vc-ink-secondary);\"><strong>\u26a0\ufe0f Note:<\/strong> Maximum permissible time at 92 dBA is only 1 hour 35 minutes under EU standard. Immediate noise reduction measures and hearing protection are mandatory.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Reference Tables -->\n<div class=\"vc-section\" id=\"vc-sec-tables\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udcca<\/span>\n            <span class=\"vc-section-title\">Noise Level Reference Tables<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner vc-theory\">\n            <h3>Noise Levels of Common Sources<\/h3>\n            <table class=\"vc-table\">\n                <thead><tr><th>Source<\/th><th>Typical Level (dBA)<\/th><th>Permissible Time (EU)<\/th><th>Permissible Time (OSHA)<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>Normal conversation<\/td><td>60<\/td><td>Unlimited<\/td><td>Unlimited<\/td><\/tr>\n                    <tr><td>Vacuum cleaner<\/td><td>70<\/td><td>Unlimited<\/td><td>Unlimited<\/td><\/tr>\n                    <tr><td>Busy traffic \/ Open office<\/td><td>80<\/td><td>25.4 hours<\/td><td>Unlimited<\/td><\/tr>\n                    <tr><td>Factory floor<\/td><td>85<\/td><td>8.00 hours<\/td><td>Unlimited<\/td><\/tr>\n                    <tr><td>Hand drill<\/td><td>90<\/td><td>2.52 hours<\/td><td>8.00 hours<\/td><\/tr>\n                    <tr><td>Grinding \/ Power saw<\/td><td>95<\/td><td>0.79 hours<\/td><td>4.00 hours<\/td><\/tr>\n                    <tr><td>Circular saw<\/td><td>100<\/td><td>0.25 hours<\/td><td>2.00 hours<\/td><\/tr>\n                    <tr><td>Hammer mill \/ Riveting<\/td><td>105<\/td><td>4.7 min<\/td><td>1.00 hour<\/td><\/tr>\n                    <tr><td>Jackhammer<\/td><td>110<\/td><td>1.5 min<\/td><td>30 min<\/td><\/tr>\n                    <tr><td>Jet engine (at 30 m)<\/td><td>140<\/td><td>&lt; 0.01 sec<\/td><td>0.07 sec<\/td><\/tr>\n                <\/tbody>\n            <\/table>\n\n            <h3>Permissible Exposure Times by Noise Level<\/h3>\n            <table class=\"vc-table\">\n                <thead><tr><th>Noise Level (dBA)<\/th><th>EU (3 dB exchange rate)<\/th><th>OSHA (5 dB exchange rate)<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>85<\/td><td>8 h 00 min<\/td><td>\u2014*<\/td><\/tr>\n                    <tr><td>88<\/td><td>4 h 00 min<\/td><td>\u2014*<\/td><\/tr>\n                    <tr><td>90<\/td><td>2 h 31 min<\/td><td>8 h 00 min<\/td><\/tr>\n                    <tr><td>91<\/td><td>2 h 00 min<\/td><td>6 h 58 min<\/td><\/tr>\n                    <tr><td>94<\/td><td>1 h 00 min<\/td><td>4 h 36 min<\/td><\/tr>\n                    <tr><td>95<\/td><td>47 min<\/td><td>4 h 00 min<\/td><\/tr>\n                    <tr><td>97<\/td><td>30 min<\/td><td>3 h 02 min<\/td><\/tr>\n                    <tr><td>100<\/td><td>15 min<\/td><td>2 h 00 min<\/td><\/tr>\n                    <tr><td>103<\/td><td>7 min 30 sec<\/td><td>1 h 19 min<\/td><\/tr>\n                    <tr><td>106<\/td><td>3 min 46 sec<\/td><td>52 min<\/td><\/tr>\n                    <tr><td>109<\/td><td>1 min 53 sec<\/td><td>34 min<\/td><\/tr>\n                    <tr><td>112<\/td><td>56 sec<\/td><td>22 min<\/td><\/tr>\n                    <tr><td>115<\/td><td>28 sec<\/td><td>15 min<\/td><\/tr>\n                <\/tbody>\n            <\/table>\n            <p style=\"font-size:12px;color:var(--vc-ink-muted);\">* OSHA reference level is 90 dBA; levels below 90 dBA have no OSHA time limit (PEL not exceeded at 8 hours).<\/p>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Related Calculators -->\n<div class=\"vc-section\" id=\"vc-sec-related\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udd17<\/span>\n            <span class=\"vc-section-title\">Related Calculators<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-related\">\n                <a class=\"vc-related-link\" href=\"\/calculators\/vibration-velocity\/\">Vibration Velocity (ISO 10816)<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/component-temperature-limits\/\">Component Temperature Limits<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/residual-unbalance-iso1940\/\">Residual Unbalance (ISO 21940)<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- FAQ -->\n<div class=\"vc-section\" id=\"vc-sec-faq\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\u2753<\/span>\n            <span class=\"vc-section-title\">Frequently Asked Questions<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-faq-list\" id=\"vc-faq-list\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Promo -->\n<div class=\"vc-promo\">\n    <div class=\"vc-promo-text\">\n        <strong>Vibromera \u2014 Portable Balancing &amp; Vibration Analysis<\/strong><br>\n        Professional field balancing instruments with built-in vibration analysis. Reduce machine noise at the source through precision balancing. Used in 50+ countries worldwide.\n    <\/div>\n    <a class=\"vc-promo-link\" href=\"https:\/\/vibromera.eu\/\" target=\"_blank\" rel=\"noopener\">Learn More<\/a>\n<\/div>\n\n<!-- Footer -->\n<footer class=\"vc-footer\">\n    <p>\u00a9 2024\u20132025 <a href=\"https:\/\/vibromera.eu\/\">Vibromera<\/a> \u2014 Engineering Calculators<\/p>\n    <p style=\"font-size:12px;margin-top:4px;\">Based on EU Directive 2003\/10\/EC and OSHA 1910.95. Last updated: February 2025<\/p>\n    <div class=\"vc-footer-links\">\n        <a href=\"\/calculators\/engineering-calculators\/\">All 252 Calculators<\/a>\n        <a href=\"https:\/\/vibromera.eu\/contacts\/\">Contact<\/a>\n    <\/div>\n<\/footer>\n\n<\/div>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.js\"><\/script>\n<script>\n(function() {\n    'use strict';\n\n    var SLUG = 'noise-exposure-calculator';\n\n    function $(id) { return document.getElementById(id); }\n\n    \/* \u2500\u2500 STANDARDS \u2500\u2500 *\/\n    var STANDARDS = {\n        eu:   { name: 'EU Directive 2003\/10\/EC', lref: 85, er: 3, label: 'EU (3 dB)' },\n        osha: { name: 'OSHA', lref: 90, er: 5, label: 'OSHA (5 dB)' }\n    };\n\n    \/* \u2500\u2500 RISK LEVELS \u2500\u2500 *\/\n    var RISK_LEVELS = [\n        { max: 50,       cls: 'vc-risk-green',  dot: 'var(--vc-green)',  label: 'Low risk' },\n        { max: 100,      cls: 'vc-risk-yellow', dot: 'var(--vc-yellow)', label: 'Action level \u2014 hearing protection recommended' },\n        { max: 200,      cls: 'vc-risk-orange', dot: 'var(--vc-accent)', label: 'Exceeded \u2014 hearing protection required' },\n        { max: Infinity, cls: 'vc-risk-red',    dot: 'var(--vc-red)',    label: 'Danger \u2014 immediate action required' }\n    ];\n\n    function getRisk(dose) {\n        for (var i = 0; i < RISK_LEVELS.length; i++) {\n            if (dose <= RISK_LEVELS[i].max) return RISK_LEVELS[i];\n        }\n        return RISK_LEVELS[RISK_LEVELS.length - 1];\n    }\n\n    \/* \u2500\u2500 CALCULATIONS \u2500\u2500 *\/\n    function calcPermittedTime(L, lref, er) {\n        return 8 \/ Math.pow(2, (L - lref) \/ er);\n    }\n\n    function calcDose(t, tPerm) {\n        return (t \/ tPerm) * 100;\n    }\n\n    function calcTWA(L, t) {\n        if (t <= 0) return L;\n        return L + 10 * Math.log10(t \/ 8);\n    }\n\n    function formatTime(hours) {\n        if (hours <= 0) return '0 sec';\n        if (hours >= 100) return hours.toFixed(1) + ' hours';\n        if (hours >= 1) {\n            var h = Math.floor(hours);\n            var m = Math.round((hours - h) * 60);\n            if (m === 60) { h++; m = 0; }\n            if (m === 0) return h + ' h 00 min';\n            return h + ' h ' + ((m < 10) ? '0' : '') + m + ' min';\n        }\n        var mins = hours * 60;\n        if (mins >= 1) {\n            var mi = Math.floor(mins);\n            var sec = Math.round((mins - mi) * 60);\n            if (sec === 60) { mi++; sec = 0; }\n            if (sec === 0) return mi + ' min';\n            return mi + ' min ' + sec + ' sec';\n        }\n        var secs = hours * 3600;\n        if (secs >= 0.1) return secs.toFixed(1) + ' sec';\n        return '< 0.1 sec';\n    }\n\n    \/* \u2500\u2500 RISK BAR \u2500\u2500 *\/\n    function buildRiskBar(dose) {\n        var barEl = $('vc-risk-bar');\n        if (!barEl) return;\n        var segW = [25, 25, 25, 25];\n        var html = '';\n        html += '<div class=\"vc-risk-bar-seg seg-a\" style=\"width:' + segW[0] + '%\">\u226450%<\/div>';\n        html += '<div class=\"vc-risk-bar-seg seg-b\" style=\"width:' + segW[1] + '%\">50-100%<\/div>';\n        html += '<div class=\"vc-risk-bar-seg seg-c\" style=\"width:' + segW[2] + '%\">100-200%<\/div>';\n        html += '<div class=\"vc-risk-bar-seg seg-d\" style=\"width:' + segW[3] + '%\">&gt;200%<\/div>';\n\n        if (dose !== null && dose >= 0) {\n            var pos;\n            if (dose <= 50) pos = (dose \/ 50) * segW[0];\n            else if (dose <= 100) pos = segW[0] + ((dose - 50) \/ 50) * segW[1];\n            else if (dose <= 200) pos = segW[0] + segW[1] + ((dose - 100) \/ 100) * segW[2];\n            else {\n                var extra = Math.min((dose - 200) \/ 200, 1);\n                pos = segW[0] + segW[1] + segW[2] + extra * segW[3] * 0.95;\n            }\n            if (pos > 99) pos = 99;\n            html += '<div class=\"vc-risk-marker\" style=\"left:' + pos + '%\"><\/div>';\n        }\n        barEl.innerHTML = html;\n    }\n\n    \/* \u2500\u2500 MAIN CALCULATION \u2500\u2500 *\/\n    function calculate() {\n        var L = parseFloat($('vc-noise-level').value);\n        var t = parseFloat($('vc-exposure-time').value);\n        var std = $('vc-standard').value;\n\n        if (isNaN(L) || L < 0 || isNaN(t) || t < 0) {\n            $('vc-results').classList.remove('vc-visible');\n            return;\n        }\n\n        var s = STANDARDS[std];\n        var tPerm = calcPermittedTime(L, s.lref, s.er);\n        var dose = calcDose(t, tPerm);\n        var twa = calcTWA(L, t);\n        var risk = getRisk(dose);\n\n        \/* Primary result *\/\n        $('vc-r-perm-time').innerHTML = formatTime(tPerm);\n\n        \/* Result cards *\/\n        $('vc-r-dose').innerHTML = dose.toFixed(1) + ' <span class=\"vc-rcard-unit\">%<\/span>';\n        $('vc-r-twa').innerHTML = twa.toFixed(1) + ' <span class=\"vc-rcard-unit\">dBA<\/span>';\n        $('vc-r-level').innerHTML = L.toFixed(1) + ' <span class=\"vc-rcard-unit\">dBA<\/span> <span class=\"vc-rcard-unit\">\/ ' + t + ' h<\/span>';\n        $('vc-r-standard').innerHTML = s.name + '<br><span class=\"vc-rcard-unit\">' + s.er + ' dB exchange rate, L<sub>ref<\/sub> = ' + s.lref + ' dBA<\/span>';\n\n        \/* Risk evaluation *\/\n        var riskEval = $('vc-risk-eval');\n        riskEval.className = 'vc-risk-eval ' + risk.cls;\n        $('vc-risk-dot').style.background = risk.dot;\n        $('vc-risk-text').textContent = 'Dose ' + dose.toFixed(1) + '% \u2014 ' + risk.label;\n\n        \/* Risk bar *\/\n        buildRiskBar(dose);\n\n        \/* EU action values *\/\n        var euInfo = $('vc-eu-info');\n        if (std === 'eu') {\n            euInfo.style.display = 'block';\n            var lowerStatus = (L >= 80) ? '<span style=\"color:var(--vc-accent)\"> \u26a0 Exceeded<\/span>' : '<span style=\"color:var(--vc-green)\"> \u2713 Below<\/span>';\n            var upperStatus = (L >= 85) ? '<span style=\"color:var(--vc-red)\"> \u26a0 Exceeded<\/span>' : '<span style=\"color:var(--vc-green)\"> \u2713 Below<\/span>';\n            var limitStatus = (L >= 87) ? '<span style=\"color:var(--vc-red)\"> \u2715 EXCEEDED<\/span>' : '<span style=\"color:var(--vc-green)\"> \u2713 Below<\/span>';\n            $('vc-eu-lower').innerHTML = 'Lower action value: <strong>80 dBA<\/strong> (L<sub>EX,8h<\/sub>) \u2014 noise assessment required ' + lowerStatus;\n            $('vc-eu-upper').innerHTML = 'Upper action value: <strong>85 dBA<\/strong> (L<sub>EX,8h<\/sub>) \u2014 hearing protection mandatory ' + upperStatus;\n            $('vc-eu-limit').innerHTML = 'Exposure limit value: <strong>87 dBA<\/strong> (L<sub>EX,8h<\/sub>) \u2014 must not be exceeded ' + limitStatus;\n        } else {\n            euInfo.style.display = 'none';\n        }\n\n        $('vc-results').classList.add('vc-visible');\n\n        \/* URL params *\/\n        var u = new URL(window.location);\n        u.searchParams.set('noiseLevel', $('vc-noise-level').value);\n        u.searchParams.set('exposureTime', $('vc-exposure-time').value);\n        u.searchParams.set('standard', std);\n        history.replaceState(null, '', u.toString());\n\n        \/* History *\/\n        saveHistory({\n            noiseLevel: $('vc-noise-level').value,\n            exposureTime: $('vc-exposure-time').value,\n            standard: std,\n            _summary: L.toFixed(0) + ' dBA \/ ' + t + 'h (' + s.label + ') \u2192 Dose ' + dose.toFixed(0) + '%'\n        });\n    }\n\n    \/* \u2500\u2500 PRESETS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-preset-btn').forEach(function(btn) {\n        btn.addEventListener('click', function(e) {\n            e.preventDefault();\n            $('vc-noise-level').value = this.getAttribute('data-level');\n            $('vc-exposure-time').value = this.getAttribute('data-time');\n            $('vc-standard').value = this.getAttribute('data-std');\n            calculate();\n        });\n    });\n\n    \/* \u2500\u2500 AUTO-CALCULATE \u2500\u2500 *\/\n    $('vc-form').addEventListener('input', calculate);\n    $('vc-form').addEventListener('change', calculate);\n\n    \/* \u2500\u2500 COPY \u2500\u2500 *\/\n    $('vc-copy-btn').addEventListener('click', function() {\n        var text = 'Noise Exposure Calculation\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'Noise Level: ' + $('vc-noise-level').value + ' dBA\\n' +\n            'Exposure Time: ' + $('vc-exposure-time').value + ' hours\\n' +\n            'Standard: ' + $('vc-r-standard').textContent + '\\n' +\n            'Permissible Time: ' + $('vc-r-perm-time').textContent + '\\n' +\n            'Noise Dose: ' + $('vc-r-dose').textContent + '\\n' +\n            'TWA: ' + $('vc-r-twa').textContent + '\\n' +\n            'Risk: ' + $('vc-risk-text').textContent + '\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'vibromera.eu\/calculators\/noise-exposure-calculator\/';\n\n        if (navigator.clipboard) {\n            navigator.clipboard.writeText(text).then(function() {\n                var btn = $('vc-copy-btn');\n                btn.classList.add('vc-copied');\n                btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg> Copied!';\n                setTimeout(function() {\n                    btn.classList.remove('vc-copied');\n                    btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg> Copy';\n                }, 2000);\n            });\n        }\n    });\n\n    \/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-section-toggle').forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            var section = this.closest('.vc-section');\n            var isOpen = section.classList.contains('vc-open');\n            section.classList.toggle('vc-open');\n            this.setAttribute('aria-expanded', !isOpen);\n        });\n    });\n\n    \/* \u2500\u2500 FAQ \u2500\u2500 *\/\n    var faqData = [\n        { q: 'What is noise dose?', a: '<p>Noise dose is a percentage measure of your actual noise exposure relative to the maximum permissible exposure. A dose of 100% means you have reached the full allowable daily noise exposure.<\/p><p>Under EU standards, 8 hours at 85 dBA equals a 100% dose. Under OSHA, 8 hours at 90 dBA is a 100% dose. Any dose above 100% exceeds the permissible limit and requires corrective action.<\/p>' },\n        { q: 'What is the difference between EU and OSHA noise standards?', a: '<p>The key differences are:<\/p><ul><li><strong>EU:<\/strong> 3 dB exchange rate, 85 dBA reference \u2014 every 3 dB increase halves the permissible time<\/li><li><strong>OSHA:<\/strong> 5 dB exchange rate, 90 dBA reference \u2014 every 5 dB increase halves the time<\/li><\/ul><p>The EU standard is stricter and more scientifically accurate because the 3 dB rule reflects the actual doubling of acoustic energy. The EU also defines lower action value (80 dBA), upper action value (85 dBA), and exposure limit (87 dBA).<\/p>' },\n        { q: 'What is the exchange rate (3 dB vs 5 dB)?', a: '<p>The exchange rate (doubling rate) defines how much the noise level must increase to halve the permissible exposure time.<\/p><p>A <strong>3 dB<\/strong> exchange rate (EU, NIOSH) is based on the equal-energy principle \u2014 3 dB increase = double the sound energy. A <strong>5 dB<\/strong> exchange rate (OSHA) is more lenient and was historically adopted as a compromise.<\/p><p>Most modern occupational health experts recommend the 3 dB rate.<\/p>' },\n        { q: 'What hearing protection should I use?', a: '<p>Choose protection with sufficient Noise Reduction Rating (NRR):<\/p><ul><li><strong>85\u201395 dBA:<\/strong> Foam earplugs (NRR 25\u201333)<\/li><li><strong>95\u2013110 dBA:<\/strong> Earmuffs or dual protection (earmuffs + earplugs)<\/li><li><strong>&gt;110 dBA:<\/strong> Custom-molded earplugs + strictly limited time<\/li><\/ul><p>Real-world attenuation is typically only 50\u201375% of rated NRR. Always ensure proper fit.<\/p>' },\n        { q: 'How is noise measured?', a: '<p>Common instruments:<\/p><ul><li><strong>Sound level meter (SLM)<\/strong> \u2014 measures instantaneous dBA with A-weighting<\/li><li><strong>Noise dosimeter<\/strong> \u2014 worn by worker, calculates cumulative dose over a shift<\/li><\/ul><p>Measurements should follow ISO 9612 or OSHA 1910.95 guidelines. Position the microphone near the worker\\'s most exposed ear, at shoulder height.<\/p>' }\n    ];\n\n    var faqList = $('vc-faq-list');\n    faqData.forEach(function(faq) {\n        faqList.innerHTML += '<div class=\"vc-faq-item\"><button type=\"button\" class=\"vc-faq-q\"><span>' + faq.q + '<\/span><svg class=\"vc-faq-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><div class=\"vc-faq-a\"><div class=\"vc-faq-a-inner\">' + faq.a + '<\/div><\/div><\/div>';\n    });\n    faqList.addEventListener('click', function(e) {\n        var btn = e.target.closest('.vc-faq-q');\n        if (!btn) return;\n        btn.closest('.vc-faq-item').classList.toggle('vc-open');\n    });\n\n    \/* \u2500\u2500 HISTORY \u2500\u2500 *\/\n    function saveHistory(entry) {\n        var key = 'vc_history_' + SLUG;\n        var arr = [];\n        try { arr = JSON.parse(localStorage.getItem(key)) || []; } catch(e) {}\n        entry._ts = new Date().toISOString();\n        arr.unshift(entry);\n        if (arr.length > 10) arr = arr.slice(0, 10);\n        try { localStorage.setItem(key, JSON.stringify(arr)); } catch(e) {}\n    }\n\n    \/* \u2500\u2500 URL PARAMS \u2500\u2500 *\/\n    function loadParams() {\n        var p = new URLSearchParams(window.location.search);\n        var map = { 'noiseLevel': 'vc-noise-level', 'exposureTime': 'vc-exposure-time', 'standard': 'vc-standard' };\n        p.forEach(function(v, k) {\n            var elId = map[k] || k;\n            var el = document.getElementById(elId);\n            if (el) el.value = v;\n        });\n    }\n\n    \/* \u2500\u2500 KATEX \u2500\u2500 *\/\n    function renderFormulas() {\n        try {\n            katex.render('T_{permitted} = \\\\frac{8}{2^{(L - L_{ref}) \/ ER}} \\\\quad [\\\\text{hours}]', $('vc-katex-1'), { displayMode: true, throwOnError: false });\n            katex.render('Dose = \\\\frac{t}{T_{permitted}} \\\\times 100\\\\%', $('vc-katex-2'), { displayMode: true, throwOnError: false });\n            katex.render('TWA = L + 10 \\\\cdot \\\\log_{10}\\\\!\\\\left(\\\\frac{t}{8}\\\\right) \\\\quad [\\\\text{dBA}]', $('vc-katex-3'), { displayMode: true, throwOnError: false });\n        } catch(e) {}\n    }\n\n    \/* \u2500\u2500 INIT \u2500\u2500 *\/\n    function init() {\n        loadParams();\n        renderFormulas();\n        calculate();\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', init);\n    } else {\n        init();\n    }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>EU \u09a8\u09bf\u09b0\u09cd\u09a6\u09c7\u09b6\u09a8\u09be 2003\/10\/EC \u098f\u09ac\u0982 OSHA \u09ae\u09be\u09a8 \u0985\u09a8\u09c1\u09af\u09be\u09af\u09bc\u09c0 \u0985\u09a8\u09c1\u09ae\u09a4 \u09b6\u09ac\u09cd\u09a6 \u098f\u0995\u09cd\u09b8\u09aa\u09cb\u099c\u09be\u09b0 \u09b8\u09ae\u09af\u09bc \u098f\u09ac\u0982 \u09a1\u09cb\u099c \u0997\u09a3\u09a8\u09be \u0995\u09b0\u09c1\u09a8\u0964 dBA \u09a4\u09c7 \u09b6\u09ac\u09cd\u09a6 \u09b8\u09cd\u09a4\u09b0 \u098f\u09ac\u0982 \u098f\u0995\u09cd\u09b8\u09aa\u09cb\u099c\u09be\u09b0 \u09b8\u09ae\u09af\u09bc \u09aa\u09cd\u09b0\u09ac\u09c7\u09b6 \u0995\u09b0\u09c1\u09a8\u0964 \u09b0\u0999-\u0995\u09cb\u09a1\u09c7\u09a1 \u099d\u09c1\u0981\u0995\u09bf \u09ae\u09c2\u09b2\u09cd\u09af\u09be\u09af\u09bc\u09a8\u0964<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100169","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":2,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100169\/revisions"}],"predecessor-version":[{"id":100933,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100169\/revisions\/100933"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/media?parent=100169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/categories?post=100169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/tags?post=100169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}