{"id":330,"date":"2026-01-29T16:32:35","date_gmt":"2026-01-29T16:32:35","guid":{"rendered":"https:\/\/sunlineenergyltd.com\/?page_id=330"},"modified":"2026-01-29T16:46:38","modified_gmt":"2026-01-29T16:46:38","slug":"batterysizer","status":"publish","type":"page","link":"https:\/\/sunlineenergyltd.com\/index.php\/batterysizer\/","title":{"rendered":"batterysizer"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"330\" class=\"elementor elementor-330\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-44a2dad elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"44a2dad\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;shape_divider_bottom&quot;:&quot;triangle-asymmetrical&quot;,&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t<div class=\"elementor-shape elementor-shape-bottom\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1000 100\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M738,99l262-93V0H0v5.6L738,99z\"\/>\n<\/svg>\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-25a3f02\" data-id=\"25a3f02\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0b14265 elementor-widget elementor-widget-heading\" data-id=\"0b14265\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Battery Sizer<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2c98d8e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2c98d8e\" data-element_type=\"section\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-09ce0c2\" data-id=\"09ce0c2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b43b004 elementor-widget elementor-widget-heading\" data-id=\"b43b004\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Battery Sizer <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9ac2b62 elementor-widget elementor-widget-text-editor\" data-id=\"9ac2b62\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p data-start=\"0\" data-end=\"332\">Battery Sizer helps you understand what size battery your home actually needs \u2014 not a guess, but a practical estimate based on your real usage. By entering a few simple details about your solar system and daily electricity consumption, the tool calculates a recommended battery capacity and module setup that matches your lifestyle.<\/p><p data-start=\"334\" data-end=\"632\">It\u2019s designed to remove the confusion around battery storage. Instead of overspending on a system that\u2019s too large \u2014 or installing one that\u2019s too small \u2014 Battery Sizer gives you a clear starting point for a smarter investment, helping you maximise your solar energy and reduce reliance on the grid.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-4762fc3\" data-id=\"4762fc3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7596a52 elementor-widget elementor-widget-shortcode\" data-id=\"7596a52\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <style>\n      .shpp-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap:16px; }\n      .shpp-kpis { display:grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap:12px; }\n      .shpp-card { background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:14px; }\n    <\/style>\n    <div class=\"shpp-bsa-card\" style=\"max-width:980px;margin:20px auto;padding:20px;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 6px 20px rgba(0,0,0,0.06);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif\">\n      <div style=\"display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap\">\n        <h2 style=\"margin:0\">Battery Sizing Advisor (for existing solar)<\/h2>\n        <span style=\"background:#fef3c7;color:#92400e;border-radius:9999px;padding:6px 10px;font-weight:700;display:inline-block\">Conceptual estimate<\/span>\n      <\/div>\n\n      <div class=\"shpp-grid\" style=\"margin-top:16px\">\n        <div><label style=\"font-weight:600;margin-bottom:6px;display:block\">PV array size (kWp)<\/label><input type=\"number\" id=\"pv_kwp\" value=\"4.0\" min=\"0\" step=\"0.1\" style=\"padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\"><\/div>\n        <div><label style=\"font-weight:600;margin-bottom:6px;display:block\">Inverter AC limit (kW)<\/label><input type=\"number\" id=\"inv_kw\" value=\"3.68\" min=\"0\" step=\"0.01\" style=\"padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\"><\/div>\n        <div><label style=\"font-weight:600;margin-bottom:6px;display:block\">Typical daily usage (kWh)<\/label><input type=\"number\" id=\"use_kwh_day\" value=\"12\" min=\"0\" step=\"0.1\" style=\"padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\"><\/div>\n        <div><label style=\"font-weight:600;margin-bottom:6px;display:block\">Peak household demand (kW)<\/label><input type=\"number\" id=\"peak_kw\" value=\"4.0\" min=\"0.5\" step=\"0.1\" style=\"padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\"><\/div>\n        <div><label style=\"font-weight:600;margin-bottom:6px;display:block\">Target backup (hours)<\/label><input type=\"number\" id=\"backup_h\" value=\"6\" min=\"1\" step=\"1\" style=\"padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\"><small style=\"color:#6b7280\">How long you want key loads covered.<\/small><\/div>\n        <div><label style=\"font-weight:600;margin-bottom:6px;display:block\">Base load during backup (kW)<\/label><input type=\"number\" id=\"backup_load_kw\" value=\"1.2\" min=\"0.2\" step=\"0.1\" style=\"padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\"><small style=\"color:#6b7280\">Sum of essential circuits.<\/small><\/div>\n        <div><label style=\"font-weight:600;margin-bottom:6px;display:block\">Reserve SOC (%)<\/label><input type=\"number\" id=\"reserve\" value=\"15\" min=\"0\" max=\"40\" step=\"1\" style=\"padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\"><\/div>\n        <div><label style=\"font-weight:600;margin-bottom:6px;display:block\">Roundtrip efficiency (%)<\/label><input type=\"number\" id=\"eff_pct\" value=\"92\" min=\"70\" max=\"100\" step=\"1\" style=\"padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\"><\/div>\n        <div><label style=\"font-weight:600;margin-bottom:6px;display:block\">Winter PV derate (%)<\/label><input type=\"number\" id=\"winter_derate\" value=\"20\" min=\"0\" max=\"60\" step=\"1\" style=\"padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\"><small style=\"color:#6b7280\">To be conservative.<\/small><\/div>\n        <div><label style=\"font-weight:600;margin-bottom:6px;display:block\">Battery model<\/label>\n          <select id=\"model\" style=\"padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\">\n                          <option value=\"0\">Generic 5kWh \u2014 5.0 kWh<\/option>\n                      <\/select>\n        <\/div>\n      <\/div>\n\n      <div style=\"display:flex;gap:12px;margin-top:12px;flex-wrap:wrap\">\n        <button id=\"bsa_calc\" class=\"shpp-btn\" style=\"appearance:none;border:0;border-radius:12px;padding:12px 16px;font-weight:700;cursor:pointer;background:#111827;color:#fff\">Calculate<\/button>\n      <\/div>\n\n      <div id=\"bsa_results\" style=\"display:none;margin-top:16px;padding:16px;border-radius:16px;background:#f9fafb;border:1px solid #e5e7eb\">\n        <h3 style=\"margin:0 0 12px 0\">Results<\/h3>\n        <div class=\"shpp-kpis\">\n          <div class=\"shpp-card\"><div style=\"font-size:12px;color:#6b7280\">Recommended usable capacity<\/div><div id=\"r_kwh\" style=\"font-size:20px;font-weight:800\">-<\/div><\/div>\n          <div class=\"shpp-card\"><div style=\"font-size:12px;color:#6b7280\">Battery modules needed<\/div><div id=\"r_modules\" style=\"font-size:20px;font-weight:800\">-<\/div><\/div>\n          <div class=\"shpp-card\"><div style=\"font-size:12px;color:#6b7280\">Est. daily cycles<\/div><div id=\"r_cycles\" style=\"font-size:20px;font-weight:800\">-<\/div><\/div>\n          <div class=\"shpp-card\"><div style=\"font-size:12px;color:#6b7280\">Peak compatibility check<\/div><div id=\"r_peak\" style=\"font-size:20px;font-weight:800\">-<\/div><\/div>\n        <\/div>\n        <div style=\"margin-top:10px;font-size:12px;color:#6b7280\" id=\"r_notes\">Sizing assumes backup base load \u00d7 hours, plus daily usage smoothing, adjusted for reserve and efficiency.<\/div>\n\n        <div id=\"bsa_form_wrap\" style=\"margin-top:16px;padding:14px;border:1px solid #e5e7eb;border-radius:12px;background:#fff\">\n          <h3 style=\"margin:0 0 10px 0\">Send these results to our team<\/h3>\n          <div class=\"shpp-grid\">\n            <input type=\"text\" id=\"f_name\" placeholder=\"Your name\" style=\"padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\">\n            <input type=\"email\" id=\"f_email\" placeholder=\"Email\" style=\"padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\">\n            <input type=\"text\" id=\"f_phone\" placeholder=\"Phone (optional)\" style=\"padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\">\n            <textarea id=\"f_notes\" placeholder=\"Notes (optional)\" style=\"grid-column:1\/-1;height:90px;padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;width:100%\"><\/textarea>\n            <input type=\"text\" id=\"f_honey\" value=\"\" style=\"position:absolute;left:-9999px;top:auto;width:1px;height:1px;opacity:0\" aria-hidden=\"true\">\n          <\/div>\n          <div style=\"display:flex;gap:10px;margin-top:12px;justify-content:flex-end\">\n            <button id=\"bsa_send\" style=\"border:0;background:#111827;color:#fff;border-radius:10px;padding:10px 14px;cursor:pointer\">Send enquiry<\/button>\n          <\/div>\n          <div id=\"bsa_status\" style=\"font-size:12px;color:#6b7280;margin-top:8px\">We\u2019ll use your details to respond to this enquiry.<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <script>\n    (function(){\n      const nonce = 'b5562e7ea9';\n      const models = [];\n      const opts = {\"company_email\":\"\",\"default_reserve_pct\":\"15\",\"default_roundtrip_eff\":\"92\",\"default_winter_derate\":\"20\",\"default_backup_hours\":\"6\",\"default_peak_kw\":\"4.0\"};\n      let snapshot = null;\n\n      function clamp(v,min,max){ return Math.min(max, Math.max(min, v)); }\n      function ceil(n){ return Math.ceil(n); }\n      function round(n,dp){ const p=Math.pow(10,dp); return Math.round(n*p)\/p; }\n\n      document.getElementById('bsa_calc').addEventListener('click', function(e){\n        e.preventDefault();\n        const pv_kwp = Math.max(0, parseFloat(document.getElementById('pv_kwp').value || '0'));\n        const inv_kw = Math.max(0, parseFloat(document.getElementById('inv_kw').value || '0'));\n        const use_day = Math.max(0, parseFloat(document.getElementById('use_kwh_day').value || '0'));\n        const peak_kw = Math.max(0, parseFloat(document.getElementById('peak_kw').value || '0'));\n        const backup_h = Math.max(0, parseFloat(document.getElementById('backup_h').value || '0'));\n        const backup_load_kw = Math.max(0, parseFloat(document.getElementById('backup_load_kw').value || '0'));\n        const reserve = clamp(parseFloat(document.getElementById('reserve').value || '0'), 0, 60);\n        const eff_pct = clamp(parseFloat(document.getElementById('eff_pct').value || '0'), 70, 100);\n        const winter_derate = clamp(parseFloat(document.getElementById('winter_derate').value || '0'), 0, 60);\n        const modelIdx = parseInt(document.getElementById('model').value || '0', 10);\n        const model = (Array.isArray(models) && models[modelIdx]) ? models[modelIdx] : { usable_kwh: 5.0, max_power_kw: 2.5, max_stack: 8, brand:'Generic 5kWh' };\n\n        \/\/ Required energy for backup window (kWh)\n        const backup_kwh = backup_load_kw * backup_h;\n\n        \/\/ Smooth daily use fraction to cover evening\/morning usage from battery (assume 50% of daily is battery-targeted)\n        const smoothing_kwh = use_day * 0.5;\n\n        \/\/ Apply winter derate to PV contribution (conservative sizing)\n        const pv_help_kwh = Math.max(0, pv_kwp * 3.0 * (1 - winter_derate\/100.0)); \/\/ rough winter day kWh production\n        const net_kwh_needed = Math.max(0, (backup_kwh + smoothing_kwh) - pv_help_kwh * 0.3); \/\/ assume 30% of winter PV lands in battery window\n\n        \/\/ Account for reserve SOC and roundtrip efficiency to size usable capacity\n        const usable_needed = net_kwh_needed \/ ( (1 - reserve\/100.0) * (eff_pct\/100.0) );\n        const usable_each = parseFloat(model.usable_kwh || 5.0);\n        const modules = Math.max(1, ceil(usable_needed \/ Math.max(0.1, usable_each)));\n\n        \/\/ Check power capability vs peak demand and inverter rating\n        const per_mod_kw = parseFloat(model.max_power_kw || 2.5);\n        const stack_power_kw = per_mod_kw * modules;\n        const power_ok = (stack_power_kw >= peak_kw) && (stack_power_kw >= 0.8 * inv_kw); \/\/ need to be in same ballpark\n        const power_note = power_ok ? 'OK' : 'May need higher-power modules or more in parallel';\n\n        \/\/ Respect max stack\n        const max_stack = parseInt(model.max_stack || '8', 10);\n        const stack_note = modules > max_stack ? ('Exceeds model stack limit ('+max_stack+'). Consider another model or split stacks.') : 'Within stack limit';\n\n        document.getElementById('bsa_results').style.display = 'block';\n        document.getElementById('r_kwh').textContent = round(usable_needed,1).toLocaleString() + ' kWh usable';\n        document.getElementById('r_modules').textContent = modules + ' \u00d7 ' + (model.brand || 'Model') + ' (' + usable_each + ' kWh each)';\n        document.getElementById('r_cycles').textContent = (Math.max(0.3, Math.min(1.2, (usable_needed \/ Math.max(0.1, usable_each)) * 0.2)).toFixed(2)) + ' \/ day (est.)';\n        document.getElementById('r_peak').textContent = power_note + ' \u2014 stack power ~ ' + round(stack_power_kw,1) + ' kW';\n\n        snapshot = { pv_kwp, inv_kw, use_day, peak_kw, backup_h, backup_load_kw, reserve, eff_pct, winter_derate, model, results: { usable_needed, modules, stack_power_kw, power_ok, max_stack, notes: { power_note, stack_note } } };\n      });\n\n      document.getElementById('bsa_send').addEventListener('click', function(){\n        const honey = document.getElementById('f_honey').value; if (honey){ return; }\n        const name = (document.getElementById('f_name').value||'').trim();\n        const email = (document.getElementById('f_email').value||'').trim();\n        const phone = (document.getElementById('f_phone').value||'').trim();\n        const notes = (document.getElementById('f_notes').value||'').trim();\n        if (!name || !email){ document.getElementById('bsa_status').textContent = 'Please enter your name and email.'; return; }\n        const fd = new FormData();\n        fd.append('action','shpp_bsa_enquiry'); fd.append('nonce','b5562e7ea9');\n        fd.append('name', name); fd.append('email', email); fd.append('phone', phone); fd.append('notes', notes);\n        fd.append('snapshot', JSON.stringify(snapshot || {}));\n        fetch('https:\/\/sunlineenergyltd.com\/wp-admin\/admin-ajax.php', { method:'POST', body: fd })\n          .then(r=>r.json()).then(j=>{ document.getElementById('bsa_status').textContent = j.message || 'Sent'; })\n          .catch(()=>{ document.getElementById('bsa_status').textContent = 'Error sending. Please try again.'; });\n      });\n    })();\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Battery Sizer Battery Sizer Battery Sizer helps you understand what size battery your home actually needs \u2014 not a guess, but a practical estimate based on your real usage. By entering a few simple details about your solar system and daily electricity consumption, the tool calculates a recommended battery capacity and module setup that matches [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-330","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sunlineenergyltd.com\/index.php\/wp-json\/wp\/v2\/pages\/330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sunlineenergyltd.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sunlineenergyltd.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sunlineenergyltd.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sunlineenergyltd.com\/index.php\/wp-json\/wp\/v2\/comments?post=330"}],"version-history":[{"count":7,"href":"https:\/\/sunlineenergyltd.com\/index.php\/wp-json\/wp\/v2\/pages\/330\/revisions"}],"predecessor-version":[{"id":340,"href":"https:\/\/sunlineenergyltd.com\/index.php\/wp-json\/wp\/v2\/pages\/330\/revisions\/340"}],"wp:attachment":[{"href":"https:\/\/sunlineenergyltd.com\/index.php\/wp-json\/wp\/v2\/media?parent=330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}