{"id":1835,"date":"2026-05-22T01:43:08","date_gmt":"2026-05-22T01:43:08","guid":{"rendered":"https:\/\/aiper.com\/blogs\/?page_id=1835"},"modified":"2026-10-21T09:16:25","modified_gmt":"2026-10-21T09:16:25","slug":"pool-borax-calculator","status":"publish","type":"page","link":"https:\/\/aiper.com\/blogs\/pool-borax-calculator\/","title":{"rendered":"Pool Borax Calculator"},"content":{"rendered":"\n<style>#pool-borax-calc-wrapper *, #pool-borax-calc-wrapper *::before, #pool-borax-calc-wrapper *::after { box-sizing: border-box; }\n#pool-borax-calc-wrapper { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, sans-serif; max-width: 680px; margin: 20px auto; padding: 0; line-height: 1.5; --bxc-teal: #1ecad3; --bxc-teal-dark: #17a8b0; --bxc-teal-light: #e8fafa; --bxc-border: #e2e8f0; --bxc-text: #2d3748; --bxc-text-light: #5a6c7d; }\n#pool-borax-calc-wrapper .bxc-intro { max-width: 680px; margin: 0 auto 16px; padding: 0 24px; text-align: center; color: var(--bxc-text-light); font-size: 15px; line-height: 1.5; }\n#pool-borax-calc-wrapper .bxc-card { background: #fff; border-radius: 16px; box-shadow: 0 4px 24px rgba(0,0,0,0.07); padding: 28px 24px; margin-bottom: 20px; border: 1px solid var(--bxc-border); }\n#pool-borax-calc-wrapper .bxc-subtitle { font-size: 0.9rem; color: var(--bxc-text-light); margin: 0 0 20px 0; }\n#pool-borax-calc-wrapper .bxc-label { display: block; font-weight: 600; font-size: 0.9rem; color: var(--bxc-text); margin-bottom: 5px; }\n#pool-borax-calc-wrapper .bxc-input-row { display: flex; gap: 10px; align-items: stretch; margin-bottom: 18px; }\n#pool-borax-calc-wrapper .bxc-input-field { flex: 1; padding: 12px 14px; border: 2px solid var(--bxc-border); border-radius: 6px; font-size: 1rem; color: #2c3e50; background: #f9fafb; outline: none; width: 100%; }\n#pool-borax-calc-wrapper .bxc-input-field:focus { border-color: #9486f7; background: #fff; color: #2c3e50; }\n#pool-borax-calc-wrapper .bxc-unit-toggle { display: flex; background: #f1f5f9; border-radius: 6px; overflow: hidden; border: 2px solid var(--bxc-border); flex-wrap: wrap; }\n#pool-borax-calc-wrapper .bxc-unit-btn { padding: 8px 14px; font-size: 0.85rem; font-weight: 600; cursor: pointer; border: none; background: transparent; color: var(--bxc-text-light); }\n#pool-borax-calc-wrapper .bxc-unit-btn:focus, #pool-borax-calc-wrapper .bxc-unit-btn:active { outline: 2px solid #9486f7; outline-offset: -2px; color: var(--bxc-text-light); }\n#pool-borax-calc-wrapper .bxc-unit-btn.bxc-active { background: linear-gradient(135deg, #1ecad3, #9486f7); color: #fff; }\n#pool-borax-calc-wrapper .bxc-preset-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }\n#pool-borax-calc-wrapper .bxc-preset-btn { padding: 6px 13px; font-size: 0.78rem; font-weight: 600; border-radius: 20px; border: 1.5px solid var(--bxc-border); background: #fff; color: var(--bxc-text-light); cursor: pointer; }\n#pool-borax-calc-wrapper .bxc-preset-btn:focus, #pool-borax-calc-wrapper .bxc-preset-btn:active { outline: 2px solid #9486f7; outline-offset: 1px; color: var(--bxc-text-light); }\n#pool-borax-calc-wrapper .bxc-preset-btn.bxc-active { border-color: #9486f7; background: #f5f3ff; color: #2c3e50; }\n#pool-borax-calc-wrapper .bxc-btn-row { display: flex; gap: 12px; max-width: 420px; margin: 26px auto 0; flex-wrap: wrap; }\n#pool-borax-calc-wrapper .bxc-calculate-btn { display: block; flex: 1; min-width: 160px; padding: 14px 30px; background: linear-gradient(135deg, #1ecad3, #9486f7); color: #fff; border: none; border-radius: 999px; font-size: 16px; font-weight: 600; letter-spacing: .5px; cursor: pointer; transition: all .2s; }\n#pool-borax-calc-wrapper .bxc-calculate-btn:hover { background: linear-gradient(135deg, #169fa6, #7b6be0); color: #fff; transform: translateY(-1px); box-shadow: 0 6px 16px rgba(148,134,247,.35); }\n#pool-borax-calc-wrapper .bxc-calculate-btn:focus, #pool-borax-calc-wrapper .bxc-calculate-btn:active { color: #fff; outline: none; box-shadow: 0 0 0 3px rgba(148,134,247,.45); }\n#pool-borax-calc-wrapper .bxc-reset-btn { display: block; flex: 1; min-width: 120px; padding: 14px 20px; background: #fff; color: #5a6c7d; border: 2px solid #d1e8ea; border-radius: 999px; font-size: 16px; font-weight: 600; letter-spacing: .5px; cursor: pointer; transition: all .2s; }\n#pool-borax-calc-wrapper .bxc-reset-btn:hover { background: #f0f7f8; border-color: #1ecad3; color: #0f8c94; }\n#pool-borax-calc-wrapper .bxc-reset-btn:focus, #pool-borax-calc-wrapper .bxc-reset-btn:active { background: #fff; outline: none; border-color: #9486f7; color: #0f8c94; }\n#pool-borax-calc-wrapper .bxc-error-msg { color: #dc2626; font-size: 0.85rem; font-weight: 600; text-align: center; margin-top: 10px; display: none; }\n#pool-borax-calc-wrapper .bxc-error-msg.bxc-visible { display: block; }\n#pool-borax-calc-wrapper .bxc-result-area { display: none; margin-top: 25px; }\n#pool-borax-calc-wrapper .bxc-result-area.bxc-visible { display: block; animation: bxcFade 0.4s ease; }\n@keyframes bxcFade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }\n#pool-borax-calc-wrapper .bxc-result-grid { display: flex; gap: 14px; flex-wrap: wrap; }\n#pool-borax-calc-wrapper .bxc-result-card { flex: 1; min-width: 220px; background: linear-gradient(135deg, #f5f3ff 0%, #e8fafa 100%); border: 2px solid #9486f7; border-radius: 10px; padding: 22px 18px; text-align: center; }\n#pool-borax-calc-wrapper .bxc-result-label { font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #5b4ab8; margin: 0 0 8px; }\n#pool-borax-calc-wrapper .bxc-result-amount { font-size: 2.4rem; font-weight: 800; color: #17a8b0; line-height: 1.15; }\n#pool-borax-calc-wrapper .bxc-result-amount .bxc-unit-label { font-size: 1.1rem; }\n#pool-borax-calc-wrapper .bxc-result-sub { margin: 6px 0 0; color: var(--bxc-text-light); font-size: 0.88rem; }\n#pool-borax-calc-wrapper .bxc-acid-line { margin-top: 12px; padding: 8px 12px; background: #fff; border: 1px solid var(--bxc-border); border-radius: 6px; font-size: 0.82rem; color: var(--bxc-text); }\n#pool-borax-calc-wrapper .bxc-warn { display: none; margin-top: 12px; padding: 10px 14px; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 6px; color: #9a3412; font-size: 0.82rem; text-align: left; }\n#pool-borax-calc-wrapper .bxc-warn.bxc-visible { display: block; }\n#pool-borax-calc-wrapper .bxc-toggle-row { display: flex; justify-content: center; align-items: center; gap: 10px; margin-top: 20px; font-size: 0.85rem; color: var(--bxc-text-light); flex-wrap: wrap; }\n#pool-borax-calc-wrapper .bxc-algebra { margin: 14px 0 0; font-size: 0.78rem; color: #8899a6; text-align: center; }\n#pool-borax-calc-wrapper .bxc-next { margin: 14px 0 0; font-size: 0.85rem; color: var(--bxc-text-light); text-align: center; }\n#pool-borax-calc-wrapper .bxc-next a { color: var(--bxc-teal-dark); font-weight: 600; text-decoration: none; }\n#pool-borax-calc-wrapper .bxc-next a:hover { text-decoration: underline; }\n#pool-borax-calc-wrapper .bxc-info-section { display: none; margin-top: 20px; }\n#pool-borax-calc-wrapper .bxc-info-section.bxc-visible { display: block; }\n#pool-borax-calc-wrapper .bxc-info-card { background: #fff; border: 1px solid var(--bxc-border); border-radius: 10px; padding: 20px; font-size: 0.9rem; }\n#pool-borax-calc-wrapper .bxc-info-title { font-weight: 700; font-size: 1rem; margin-bottom: 10px; }\n#pool-borax-calc-wrapper ol.bxc-howto-list { margin: 0; padding: 0 0 0 20px; }\n#pool-borax-calc-wrapper ol.bxc-howto-list li { margin-bottom: 6px; }\n@media (max-width: 600px) { #pool-borax-calc-wrapper .bxc-btn-row { flex-direction: column; max-width: 280px; } #pool-borax-calc-wrapper .bxc-reset-btn { padding: 12px 20px; font-size: 14px; } }\n@media (max-width: 500px) { #pool-borax-calc-wrapper .bxc-input-row { flex-direction: column; } }\n<\/style>\n<div id=\"pool-borax-calc-wrapper\">\n    <p class=\"bxc-intro\">Find out how much borax or boric acid to add to reach your target borate level, and how much muriatic acid to bring pH back down afterward. If your borates are already too high, it shows how much water to replace instead.<\/p>\n    <div class=\"bxc-card\">\n        <p class=\"bxc-subtitle\">Enter your pool volume and current borate reading (use 0 if you have never added borates).<\/p>\n\n        <label class=\"bxc-label\">Pool Volume<\/label>\n        <div class=\"bxc-input-row\">\n            <input type=\"number\" id=\"bxc-pool-volume\" class=\"bxc-input-field\" placeholder=\"e.g., 15000\">\n            <div class=\"bxc-unit-toggle\" id=\"bxc-volume-unit-toggle\">\n                <button type=\"button\" class=\"bxc-unit-btn bxc-active\" data-unit=\"gallons\">Gallons<\/button>\n                <button type=\"button\" class=\"bxc-unit-btn\" data-unit=\"liters\">Liters<\/button>\n                <button type=\"button\" class=\"bxc-unit-btn\" data-unit=\"m3\">m&sup3;<\/button>\n            <\/div>\n        <\/div>\n\n        <label class=\"bxc-label\">Current Borates (ppm)<\/label>\n        <div class=\"bxc-input-row\">\n            <input type=\"number\" id=\"bxc-current\" class=\"bxc-input-field\" placeholder=\"e.g., 20\" value=\"0\">\n        <\/div>\n\n        <label class=\"bxc-label\">Target Borates (ppm)<\/label>\n        <div class=\"bxc-input-row\">\n            <input type=\"number\" id=\"bxc-target\" class=\"bxc-input-field\" placeholder=\"e.g., 50\" value=\"50\">\n        <\/div>\n        <div class=\"bxc-preset-row\" id=\"bxc-preset-row\">\n            <button type=\"button\" class=\"bxc-preset-btn\" data-target=\"30\">30 ppm (minimum)<\/button>\n            <button type=\"button\" class=\"bxc-preset-btn\" data-target=\"40\">40 ppm (typical)<\/button>\n            <button type=\"button\" class=\"bxc-preset-btn bxc-active\" data-target=\"50\">50 ppm (maximum)<\/button>\n        <\/div>\n\n        <div class=\"bxc-btn-row\">\n            <button type=\"button\" id=\"bxc-calculate-btn\" class=\"bxc-calculate-btn\">Calculate<\/button>\n            <button type=\"button\" id=\"bxc-reset-btn\" class=\"bxc-reset-btn\">Reset<\/button>\n        <\/div>\n        <p id=\"bxc-error-msg\" class=\"bxc-error-msg\"><\/p>\n\n        <div id=\"bxc-result-area\" class=\"bxc-result-area\">\n            <div class=\"bxc-result-grid\" id=\"bxc-result-grid\"><\/div>\n            <div id=\"bxc-warn\" class=\"bxc-warn\"><\/div>\n            <div class=\"bxc-toggle-row\" id=\"bxc-toggle-row\">\n                <span>Show results in:<\/span>\n                <div class=\"bxc-unit-toggle\" id=\"bxc-result-unit-toggle\">\n                    <button type=\"button\" class=\"bxc-unit-btn bxc-active\" data-unit=\"lbs\">Pounds (lbs)<\/button>\n                    <button type=\"button\" class=\"bxc-unit-btn\" data-unit=\"kg\">Kilograms (kg)<\/button>\n                    <button type=\"button\" class=\"bxc-unit-btn\" data-unit=\"oz\">Ounces (oz)<\/button>\n                <\/div>\n            <\/div>\n            <p class=\"bxc-algebra\" id=\"bxc-algebra\"><\/p>\n            <p class=\"bxc-next\">Not sure of your pool volume? Use our <a href=\"https:\/\/aiper.com\/blogs\/pool-volume-calculator\/\">pool volume calculator<\/a>. Need to check pH after dosing? Try the <a href=\"https:\/\/aiper.com\/blogs\/pool-ph-calculator\/\">pool pH calculator<\/a>.<\/p>\n        <\/div>\n    <\/div>\n\n    <div id=\"bxc-info-section\" class=\"bxc-info-section\">\n        <div class=\"bxc-info-card\">\n            <div class=\"bxc-info-title\">How to Add Borax to Your Pool<\/div>\n            <ol class=\"bxc-howto-list\">\n                <li>Test borates, pH and total alkalinity first, and correct alkalinity before you start.<\/li>\n                <li>Pre-dissolve the borax (or boric acid) in a bucket of warm water. It dissolves slowly in cold pool water.<\/li>\n                <li>With the pump running, pour the solution slowly around the deep end, in front of the return jets. Never put it in the skimmer.<\/li>\n                <li>If you used borax, add the muriatic acid in small portions in a different spot, and retest pH between portions.<\/li>\n                <li>Run the pump for 24 hours, then retest borates. Add a second, smaller round only if you are still under target.<\/li>\n            <\/ol>\n        <\/div>\n    <\/div>\n<\/div>\n<script>(function() {\n    var get = function(id) { return document.getElementById(id); };\n    var BORAX_PER_10 = 7.375, BORIC_PER_10 = 4.75, ACID_FLOZ_PER_LB = 8;\n    var GAL = { gallons: 1, liters: 0.264172, m3: 264.172 };\n    var VLABEL = { gallons: 'gal', liters: 'L', m3: 'm\\u00b3' };\n    var state = { vUnit: 'gallons', rUnit: 'lbs', res: null };\n    var INIT = { vUnit: state.vUnit, rUnit: state.rUnit, current: get('bxc-current').value, target: get('bxc-target').value };\n\n    var fmt = function(n) {\n        if (n >= 100) return Math.round(n).toLocaleString();\n        return (Math.round(n * 10) \/ 10).toLocaleString();\n    };\n\n    var syncPresets = function() {\n        var t = get('bxc-target').value;\n        Array.from(get('bxc-preset-row').children).forEach(function(b) { b.classList.toggle('bxc-active', b.dataset.target === t); });\n    };\n    get('bxc-preset-row').addEventListener('click', function(e) {\n        if (!e.target.classList.contains('bxc-preset-btn')) return;\n        get('bxc-target').value = e.target.dataset.target;\n        syncPresets();\n    });\n    get('bxc-target').addEventListener('input', syncPresets);\n\n    var showError = function(msg) {\n        var err = get('bxc-error-msg');\n        err.textContent = msg;\n        err.classList.add('bxc-visible');\n        get('bxc-result-area').classList.remove('bxc-visible');\n        get('bxc-info-section').classList.remove('bxc-visible');\n    };\n\n    var calc = function() {\n        var err = get('bxc-error-msg');\n        err.classList.remove('bxc-visible');\n        err.textContent = '';\n\n        var v = parseFloat(get('bxc-pool-volume').value);\n        var cRaw = get('bxc-current').value;\n        var c = cRaw === '' ? NaN : parseFloat(cRaw);\n        var t = parseFloat(get('bxc-target').value);\n\n        if (!v || v <= 0 || isNaN(v)) { showError('Enter your pool volume.'); return; }\n        if (isNaN(c) || c < 0) { showError('Enter your current borate level (use 0 if you have never added borates).'); return; }\n        if (!t || t <= 0 || isNaN(t)) { showError('Enter your target borate level.'); return; }\n\n        var warn = get('bxc-warn');\n        if (t > 50) {\n            warn.textContent = 'Target above 50 ppm is higher than most pool-chemistry guidance recommends. Borates do not break down, so the only way to lower them later is to replace water.';\n            warn.classList.add('bxc-visible');\n        } else {\n            warn.textContent = '';\n            warn.classList.remove('bxc-visible');\n        }\n\n        var gal = v * GAL[state.vUnit];\n        if (Math.abs(c - t) < 0.5) {\n            state.res = { mode: 'none' };\n        } else if (c > t) {\n            var pct = (c - t) \/ c * 100;\n            state.res = { mode: 'drain', pct: pct, vol: v * pct \/ 100, v: v, c: c, t: t };\n        } else {\n            var steps = (gal \/ 10000) * ((t - c) \/ 10);\n            state.res = { mode: 'add', borax: steps * BORAX_PER_10, boric: steps * BORIC_PER_10, v: v, c: c, t: t, gal: gal };\n        }\n        get('bxc-result-area').classList.add('bxc-visible');\n        get('bxc-info-section').classList.toggle('bxc-visible', state.res.mode === 'add');\n        get('bxc-toggle-row').style.display = state.res.mode === 'add' ? '' : 'none';\n        render();\n        get('bxc-result-area').scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n    };\n\n    var toUnit = function(lbs) {\n        if (state.rUnit === 'kg') return lbs * 0.453592;\n        if (state.rUnit === 'oz') return lbs * 16;\n        return lbs;\n    };\n    var unitName = function() { return state.rUnit; };\n\n    var card = function(label, amountHtml, sub, extra) {\n        return '<div class=\"bxc-result-card\"><p class=\"bxc-result-label\">' + label + '<\/p><div class=\"bxc-result-amount\">' + amountHtml + '<\/div><p class=\"bxc-result-sub\">' + sub + '<\/p>' + (extra || '') + '<\/div>';\n    };\n\n    var render = function() {\n        var r = state.res;\n        if (!r) return;\n        var grid = get('bxc-result-grid');\n        var alg = get('bxc-algebra');\n        if (r.mode === 'none') {\n            grid.innerHTML = card('Already at target', '<span>0<\/span>', 'Your borates already match the target. No borax or boric acid needed.');\n            alg.textContent = '';\n            return;\n        }\n        if (r.mode === 'drain') {\n            grid.innerHTML = card('Replace Water', '<span>' + fmt(r.pct) + '<\/span><span class=\"bxc-unit-label\">%<\/span>', 'of your pool water with fresh water, about ' + fmt(r.vol) + ' ' + VLABEL[state.vUnit] + ' for your pool. Borates do not evaporate, so draining and refilling is the only way to lower them.');\n            alg.textContent = '(' + fmt(r.c) + ' - ' + fmt(r.t) + ') \\u00f7 ' + fmt(r.c) + ' = ' + fmt(r.pct) + '% of the water to replace';\n            return;\n        }\n        var u = unitName();\n        var acidFl = r.borax * ACID_FLOZ_PER_LB;\n        var acidTxt;\n        if (state.rUnit === 'kg') {\n            var ml = acidFl * 29.5735;\n            acidTxt = ml >= 1000 ? fmt(ml \/ 1000) + ' L' : fmt(ml) + ' mL';\n        } else {\n            acidTxt = fmt(acidFl) + ' fl oz' + (acidFl >= 128 ? ' (about ' + fmt(acidFl \/ 128) + ' gal)' : '');\n        }\n        var boxes = r.borax \/ 4;\n        var boxTxt = boxes < 1 ? 'less than 1 box' : 'about ' + fmt(boxes) + ' boxes';\n        var b1 = card('Borax', '<span>' + fmt(toUnit(r.borax)) + '<\/span> <span class=\"bxc-unit-label\">' + u + '<\/span>', boxTxt + ' (4 lb each)', '<div class=\"bxc-acid-line\">Plus about <strong>' + acidTxt + '<\/strong> of 31.45% muriatic acid to bring pH back down.<\/div>');\n        var b2 = card('Boric Acid', '<span>' + fmt(toUnit(r.boric)) + '<\/span> <span class=\"bxc-unit-label\">' + u + '<\/span>', 'the alternative that barely changes pH', '<div class=\"bxc-acid-line\">No muriatic acid needed for this route.<\/div>');\n        grid.innerHTML = b1 + b2;\n        alg.textContent = '(' + fmt(r.t) + ' - ' + fmt(r.c) + ') \\u00f7 10 \\u00d7 ' + fmt(r.gal) + ' gal \\u00f7 10,000 \\u00d7 ' + BORAX_PER_10 + ' lb borax (' + BORIC_PER_10 + ' lb boric acid)';\n    };\n\n    get('bxc-volume-unit-toggle').onclick = function(e) {\n        if (!e.target.classList.contains('bxc-unit-btn')) return;\n        state.vUnit = e.target.dataset.unit;\n        Array.from(get('bxc-volume-unit-toggle').children).forEach(function(b) { b.classList.toggle('bxc-active', b === e.target); });\n    };\n    get('bxc-result-unit-toggle').onclick = function(e) {\n        if (!e.target.classList.contains('bxc-unit-btn')) return;\n        state.rUnit = e.target.dataset.unit;\n        Array.from(get('bxc-result-unit-toggle').children).forEach(function(b) { b.classList.toggle('bxc-active', b === e.target); });\n        render();\n    };\n\n    get('bxc-reset-btn').onclick = function() {\n        get('bxc-pool-volume').value = '';\n        get('bxc-current').value = INIT.current;\n        get('bxc-target').value = INIT.target;\n        syncPresets();\n        state.vUnit = INIT.vUnit; state.rUnit = INIT.rUnit; state.res = null;\n        Array.from(get('bxc-volume-unit-toggle').children).forEach(function(b) { b.classList.toggle('bxc-active', b.dataset.unit === INIT.vUnit); });\n        Array.from(get('bxc-result-unit-toggle').children).forEach(function(b) { b.classList.toggle('bxc-active', b.dataset.unit === INIT.rUnit); });\n        var err = get('bxc-error-msg');\n        err.classList.remove('bxc-visible');\n        err.textContent = '';\n        get('bxc-result-area').classList.remove('bxc-visible');\n        get('bxc-info-section').classList.remove('bxc-visible');\n        get('bxc-pool-volume').focus();\n    };\n\n    get('bxc-calculate-btn').onclick = calc;\n})();<\/script>\n\n\n\n<style>\n  #pool-borax-reference-table { max-width: 860px; margin: 2.5rem auto; font-family: 'Inter', system-ui, sans-serif; color: #2c3e50; scroll-margin-top: 80px; }\n  #pool-borax-reference-table h2 { font-size: 1.5rem; font-weight: 700; color: #17a8b0; margin: 0 0 8px; }\n  #pool-borax-reference-table h3 { font-size: 1.1rem; font-weight: 700; color: #5b4ab8; margin: 28px 0 6px; }\n  #pool-borax-reference-table .pbx-subtitle { font-size: 0.9rem; color: #5a6c7d; margin: 0 0 16px; line-height: 1.5; }\n  #pool-borax-reference-table .pbx-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #e0e5eb; border-radius: 14px; box-shadow: 0 4px 16px rgba(0,0,0,0.04); }\n  #pool-borax-reference-table .pbx-table { width: 100%; border-collapse: collapse; font-size: 0.88rem; min-width: 520px; }\n  #pool-borax-reference-table .pbx-table thead th { background: linear-gradient(135deg, #1ecad3, #9486f7); color: #fff; font-weight: 600; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; padding: 12px 10px; text-align: center; white-space: nowrap; }\n  #pool-borax-reference-table .pbx-table thead th:first-child { border-radius: 13px 0 0 0; text-align: left; }\n  #pool-borax-reference-table .pbx-table thead th:last-child { border-radius: 0 13px 0 0; }\n  #pool-borax-reference-table .pbx-table tbody td { padding: 10px; border-bottom: 1px solid #eef1f5; vertical-align: middle; text-align: center; }\n  #pool-borax-reference-table .pbx-table tbody tr:nth-child(even) { background: #fafcfd; }\n  #pool-borax-reference-table .pbx-table tbody tr:hover { background: #e8fafb; }\n  #pool-borax-reference-table .pbx-vol { font-weight: 600; color: #2c3e50; white-space: nowrap; text-align: left; }\n  #pool-borax-reference-table .pbx-num { font-weight: 700; color: #0f8c94; white-space: nowrap; }\n  #pool-borax-reference-table .pbx-acid { font-weight: 600; color: #5b4ab8; white-space: nowrap; }\n  #pool-borax-reference-table .pbx-note { margin-top: 12px; font-size: 0.8rem; color: #8899a6; line-height: 1.5; }\n  @media (max-width: 500px) {\n    #pool-borax-reference-table { padding: 0 6px; }\n    #pool-borax-reference-table .pbx-table { font-size: 0.78rem; min-width: 460px; }\n    #pool-borax-reference-table .pbx-table thead th { padding: 8px 6px; font-size: 0.65rem; }\n    #pool-borax-reference-table .pbx-table tbody td { padding: 7px 6px; }\n  }\n<\/style>\n<div id=\"pool-borax-reference-table\">\n  <h2>Pool Borax Dosage Chart: Pounds by Pool Size and Target Level<\/h2>\n  <p class=\"pbx-subtitle\">Amounts assume a pool starting at <strong>0 ppm borates<\/strong> and are in <strong>pounds (lbs)<\/strong>, using 7.375 lb of borax or 4.75 lb of boric acid per 10 ppm in 10,000 gallons. Already have some borates? Enter your reading in the calculator above.<\/p>\n\n  <h3>Borax and muriatic acid<\/h3>\n  <div class=\"pbx-table-wrap\">\n    <table class=\"pbx-table\">\n      <thead><tr><th>Pool Volume<\/th><th>To 30 ppm<\/th><th>To 40 ppm<\/th><th>To 50 ppm<\/th><th>Acid for 50 ppm (fl oz)<\/th><\/tr><\/thead>\n      <tbody>\n        <tr><td class=\"pbx-vol\">5,000 gal<\/td><td class=\"pbx-num\">11.1<\/td><td class=\"pbx-num\">14.8<\/td><td class=\"pbx-num\">18.4<\/td><td class=\"pbx-acid\">148<\/td><\/tr>\n<tr><td class=\"pbx-vol\">7,500 gal<\/td><td class=\"pbx-num\">16.6<\/td><td class=\"pbx-num\">22.1<\/td><td class=\"pbx-num\">27.7<\/td><td class=\"pbx-acid\">221<\/td><\/tr>\n<tr><td class=\"pbx-vol\">10,000 gal<\/td><td class=\"pbx-num\">22.1<\/td><td class=\"pbx-num\">29.5<\/td><td class=\"pbx-num\">36.9<\/td><td class=\"pbx-acid\">295<\/td><\/tr>\n<tr><td class=\"pbx-vol\">15,000 gal<\/td><td class=\"pbx-num\">33.2<\/td><td class=\"pbx-num\">44.2<\/td><td class=\"pbx-num\">55.3<\/td><td class=\"pbx-acid\">442<\/td><\/tr>\n<tr><td class=\"pbx-vol\">20,000 gal<\/td><td class=\"pbx-num\">44.2<\/td><td class=\"pbx-num\">59.0<\/td><td class=\"pbx-num\">73.8<\/td><td class=\"pbx-acid\">590<\/td><\/tr>\n<tr><td class=\"pbx-vol\">25,000 gal<\/td><td class=\"pbx-num\">55.3<\/td><td class=\"pbx-num\">73.8<\/td><td class=\"pbx-num\">92.2<\/td><td class=\"pbx-acid\">738<\/td><\/tr>\n<tr><td class=\"pbx-vol\">30,000 gal<\/td><td class=\"pbx-num\">66.4<\/td><td class=\"pbx-num\">88.5<\/td><td class=\"pbx-num\">110.6<\/td><td class=\"pbx-acid\">885<\/td><\/tr>\n<tr><td class=\"pbx-vol\">40,000 gal<\/td><td class=\"pbx-num\">88.5<\/td><td class=\"pbx-num\">118.0<\/td><td class=\"pbx-num\">147.5<\/td><td class=\"pbx-acid\">1,180<\/td><\/tr>\n      <\/tbody>\n    <\/table>\n  <\/div>\n  <p class=\"pbx-note\">Acid is 31.45% muriatic acid, about 0.5 fl oz per oz of borax, enough to turn all of the borax into boric acid. Add it in portions and retest pH, since your starting pH also matters.<\/p>\n\n  <h3>Boric acid<\/h3>\n  <div class=\"pbx-table-wrap\">\n    <table class=\"pbx-table\">\n      <thead><tr><th>Pool Volume<\/th><th>To 30 ppm<\/th><th>To 40 ppm<\/th><th>To 50 ppm<\/th><\/tr><\/thead>\n      <tbody>\n        <tr><td class=\"pbx-vol\">5,000 gal<\/td><td class=\"pbx-num\">7.1<\/td><td class=\"pbx-num\">9.5<\/td><td class=\"pbx-num\">11.9<\/td><\/tr>\n<tr><td class=\"pbx-vol\">7,500 gal<\/td><td class=\"pbx-num\">10.7<\/td><td class=\"pbx-num\">14.2<\/td><td class=\"pbx-num\">17.8<\/td><\/tr>\n<tr><td class=\"pbx-vol\">10,000 gal<\/td><td class=\"pbx-num\">14.2<\/td><td class=\"pbx-num\">19.0<\/td><td class=\"pbx-num\">23.8<\/td><\/tr>\n<tr><td class=\"pbx-vol\">15,000 gal<\/td><td class=\"pbx-num\">21.4<\/td><td class=\"pbx-num\">28.5<\/td><td class=\"pbx-num\">35.6<\/td><\/tr>\n<tr><td class=\"pbx-vol\">20,000 gal<\/td><td class=\"pbx-num\">28.5<\/td><td class=\"pbx-num\">38.0<\/td><td class=\"pbx-num\">47.5<\/td><\/tr>\n<tr><td class=\"pbx-vol\">25,000 gal<\/td><td class=\"pbx-num\">35.6<\/td><td class=\"pbx-num\">47.5<\/td><td class=\"pbx-num\">59.4<\/td><\/tr>\n<tr><td class=\"pbx-vol\">30,000 gal<\/td><td class=\"pbx-num\">42.8<\/td><td class=\"pbx-num\">57.0<\/td><td class=\"pbx-num\">71.2<\/td><\/tr>\n<tr><td class=\"pbx-vol\">40,000 gal<\/td><td class=\"pbx-num\">57.0<\/td><td class=\"pbx-num\">76.0<\/td><td class=\"pbx-num\">95.0<\/td><\/tr>\n      <\/tbody>\n    <\/table>\n  <\/div>\n  <p class=\"pbx-note\">Boric acid needs less weight than borax and barely moves pH, so no muriatic acid is needed.<\/p>\n\n  <h3>Borates too high? Water to replace<\/h3>\n  <div class=\"pbx-table-wrap\">\n    <table class=\"pbx-table\">\n      <thead><tr><th>Current Level<\/th><th>Down to 50 ppm<\/th><th>Down to 40 ppm<\/th><th>Down to 30 ppm<\/th><\/tr><\/thead>\n      <tbody>\n        <tr><td class=\"pbx-vol\">60 ppm<\/td><td class=\"pbx-num\">17%<\/td><td class=\"pbx-num\">33%<\/td><td class=\"pbx-num\">50%<\/td><\/tr>\n<tr><td class=\"pbx-vol\">70 ppm<\/td><td class=\"pbx-num\">29%<\/td><td class=\"pbx-num\">43%<\/td><td class=\"pbx-num\">57%<\/td><\/tr>\n<tr><td class=\"pbx-vol\">80 ppm<\/td><td class=\"pbx-num\">38%<\/td><td class=\"pbx-num\">50%<\/td><td class=\"pbx-num\">62%<\/td><\/tr>\n<tr><td class=\"pbx-vol\">100 ppm<\/td><td class=\"pbx-num\">50%<\/td><td class=\"pbx-num\">60%<\/td><td class=\"pbx-num\">70%<\/td><\/tr>\n<tr><td class=\"pbx-vol\">120 ppm<\/td><td class=\"pbx-num\">58%<\/td><td class=\"pbx-num\">67%<\/td><td class=\"pbx-num\">75%<\/td><\/tr>\n      <\/tbody>\n    <\/table>\n  <\/div>\n  <p class=\"pbx-note\">Percent of the pool&#8217;s water to drain and replace with fresh water. Borates do not evaporate, so this is the only way to bring the level down.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pool Borates FAQs<\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1790000000000\"><strong class=\"schema-faq-question\">What does borax do for a pool?<\/strong> <p class=\"schema-faq-answer\">Borax does two different jobs depending on how much you use. In a small dose it raises pH, because borax is alkaline (about pH 9.2) while barely moving total alkalinity. Built up to 30 to 50 ppm borates, it steadies pH against drift, helps discourage algae growth and gives the water a softer, clearer look. It is not a sanitizer, so you still need chlorine.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790000017311\"><strong class=\"schema-faq-question\">Does borax raise pH in a pool?<\/strong> <p class=\"schema-faq-answer\">Yes. Borax is alkaline, so it raises pH every time you add it, which is why a borate program using borax ends with muriatic acid to bring pH back down. If you want borates without the pH rise, use boric acid instead. Retest after the pump has run for several hours, because the full pH change takes a while to show.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790000034622\"><strong class=\"schema-faq-question\">Will borax raise alkalinity in a pool?<\/strong> <p class=\"schema-faq-answer\">A little, but far less than it raises pH. Baking soda is the product for raising total alkalinity, and borax is the better pick when pH is low but alkalinity is already in range. Test both pH and alkalinity again after 24 hours of circulation rather than assuming.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790000051933\"><strong class=\"schema-faq-question\">What happens when you put borax in a pool?<\/strong> <p class=\"schema-faq-answer\">The powder dissolves slowly, faster in warm water, and anything that settles on the floor can leave a cloudy patch until it is brushed around. pH climbs within hours and the borates stay in the water afterward. They do not evaporate or get used up, so the level only falls through splash-out, backwashing and refilling. Overshoot 50 ppm and the only fix is replacing water.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790000069244\"><strong class=\"schema-faq-question\">How long after adding borax to a pool can you swim?<\/strong> <p class=\"schema-faq-answer\">Once the borax has fully dissolved and circulated, usually 30 to 60 minutes with the pump on high, and your pH reads in the normal range. If you also added muriatic acid, let that circulate too and retest first. Boric acid follows the same rule.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790000086555\"><strong class=\"schema-faq-question\">Can you mix baking soda and borax?<\/strong> <p class=\"schema-faq-answer\">You can use both in the same pool, and mixing the two powders is not dangerous, but add them separately instead of premixed because they fix different problems. Baking soda raises alkalinity and borax raises pH. Correct alkalinity first, let the water circulate and retest, then add borax only if pH is still low.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790000103866\"><strong class=\"schema-faq-question\">Boric acid vs borax: which one should you use?<\/strong> <p class=\"schema-faq-answer\">Both leave the same borates behind. Borax is cheaper and easy to find, but it raises pH so you need muriatic acid alongside it. Boric acid costs more per pound but takes less weight (about 4.75 lb versus 7.4 lb per 10 ppm in 10,000 gallons) and barely changes pH. Choose boric acid if your pH is already at the top of the range.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790000121177\"><strong class=\"schema-faq-question\">Does borax kill algae?<\/strong> <p class=\"schema-faq-answer\">Not on its own. Borates slow algae growth and make chlorine&#8217;s job easier, but they will not clear an existing bloom. Treat the bloom with chlorine shock and brushing first, then build borates to 30 to 50 ppm to help prevent a repeat.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790000138488\"><strong class=\"schema-faq-question\">Is borax safe for swimmers and pets?<\/strong> <p class=\"schema-faq-answer\">At the usual 30 to 50 ppm, borates are considered fine for swimming, but the water is not something to drink. Stay at or under 50 ppm, keep dry borax and boric acid away from children and pets, and discourage pets from drinking pool water. If the level overshoots, replace water using the figure from the calculator.<\/p> <\/div><\/div>\n\n\n<!-- aiper-tool-links -->\n<div class=\"aiper-tool-links\">\n  <div class=\"aiper-tl-section\">\n    <div class=\"aiper-tl-heading\">More Tools<\/div>\n    <div class=\"aiper-tl-tags\">\n      <a href=\"https:\/\/aiper.com\/blogs\/pool-fill-time-calculator\/\" class=\"aiper-tl-tag\">Pool Fill Time Calculator<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/pool-turnover-rate-calculator\/\" class=\"aiper-tl-tag\">Pool Turnover Rate Calculator<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/pool-saturation-index-calculator\/\" class=\"aiper-tl-tag\">Pool Saturation Index Calculator<\/a>\n    <\/div>\n  <\/div>\n  <div class=\"aiper-tl-section\">\n    <div class=\"aiper-tl-heading\">Related Articles<\/div>\n    <div class=\"aiper-tl-tags\">\n      <a href=\"https:\/\/aiper.com\/blogs\/how-to-lower-alkalinity-in-pool\/\" class=\"aiper-tl-tag\">How to Lower Alkalinity in a Pool (and When You Actually Need To)<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/pool-robot-gets-stuck-on-main-drain\/\" class=\"aiper-tl-tag\">Why Does Your Pool Robot Get Stuck on the Main Drain?<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/how-to-winterize-inground-pool\/\" class=\"aiper-tl-tag\">How to Winterize an Inground Pool: Step-by-Step<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/how-to-get-rid-of-algae-in-pool\/\" class=\"aiper-tl-tag\">The Complete Guide to Pool Algae: How to Identify, Treat, and Prevent Every Type<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n.aiper-tool-links{margin:2.5rem 0 1.5rem;padding:1.5rem 1.75rem;background:linear-gradient(135deg,rgba(148,134,247,.04),rgba(30,202,211,.04));border-radius:12px;border:1px solid rgba(148,134,247,.10)}\n.aiper-tl-section{margin-bottom:1.25rem}\n.aiper-tl-section:last-child{margin-bottom:0}\n.aiper-tl-heading{font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#8899aa;margin:0 0 .65rem}\n.aiper-tl-tags{display:flex;flex-wrap:wrap;gap:.5rem}\n.aiper-tl-tag{display:inline-block;padding:.4rem .95rem;font-size:.82rem;font-weight:500;line-height:1.35;color:#9486f7;background:rgba(148,134,247,.055);border:1px solid rgba(30,202,211,.25);border-radius:22px;text-decoration:none;transition:all .18s}\n.aiper-tl-tag:hover{background:#1ecad3;color:#fff;border-color:#1ecad3;box-shadow:0 2px 10px rgba(30,202,211,.22)}\n<\/style>\n\n\n<p class=\"has-text-align-center aiper-last-updated has-small-font-size wp-block-paragraph\"><time datetime=\"2026-09-30\">Last updated: September 30, 2026<\/time><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Find out how much borax or boric acid to add to reach your target borate level, and how much muriatic acid to bring pH back down afterward. If your borates are already too high, it shows how much water to replace instead. Enter your pool volume and current borate reading (use 0 if you have&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-1835","page","type-page","status-publish","hentry"],"lang":"en","translations":{"en":1835,"de":2149,"fr":2150,"es":2151},"_links":{"self":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/1835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/comments?post=1835"}],"version-history":[{"count":10,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/1835\/revisions"}],"predecessor-version":[{"id":11898,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/1835\/revisions\/11898"}],"wp:attachment":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/media?parent=1835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}