Power Station Runtime Calculator

Every gear guide on this site says the same thing: size your backup power to what you actually run. This calculator makes that a 30-second job. Add your devices (we’ve pre-loaded typical wattages and duty cycles), pick a station size, and see your runtime — or flip it around and see what capacity your target outage-duration requires.

Power Station Runtime Calculator
Add your devices and pick a station size — we’ll estimate how long it runs.
Estimates use 85% usable capacity (inverter + battery overhead) and your duty-cycle inputs. Fridge/freezer watts below are cycling averages — set duty cycle ~35% for a modern fridge. Real runtimes vary with temperature, battery age, and model efficiency.
(function(){ var PRESETS = [ {n:”Modern fridge (cycling avg)”, w:150, d:35}, {n:”Chest freezer (cycling avg)”, w:120, d:40}, {n:”Router + modem”, w:10, d:100}, {n:”Phone charging”, w:8, d:20}, {n:”Laptop charging”, w:65, d:15}, {n:”LED lights (x5)”, w:25, d:50}, {n:”CPAP machine”, w:50, d:100}, {n:”Window AC (small)”, w:500, d:60}, {n:”Electric blanket”, w:100, d:40}, {n:”TV (LED 55″)”, w:100, d:30}, {n:”Microwave (brief use)”, w:1000, d:2}, {n:”Custom device”, w:60, d:50} ]; var USABLE = 0.85, box = document.getElementById(‘lsh-devs’); function rowHTML(i, presetIdx, w, d){ var opts = PRESETS.map(function(p,j){ return ”+p.n+”; }).join(”); return ‘
‘+ ”+opts+”+ ‘ W‘+ ‘% on‘+ ‘
‘; } function addRow(presetIdx){ var p = PRESETS[presetIdx !== undefined ? presetIdx : 0]; var div = document.createElement(‘div’); div.innerHTML = rowHTML(0, presetIdx !== undefined ? presetIdx : 0, p.w, p.d); box.appendChild(div.firstChild); } function dailyWh(){ var total = 0; document.querySelectorAll(‘#lsh-devs .lsh-row’).forEach(function(r){ var w = parseFloat(r.querySelector(‘.lsh-w’).value)||0; var d = (parseFloat(r.querySelector(‘.lsh-d’).value)||0)/100; total += w*d*24; }); return total; } function capWh(){ var sel = document.getElementById(‘lsh-cap’).value; if(sel===’custom’) return parseFloat(document.getElementById(‘lsh-custom’).value)||1000; return parseFloat(sel); } function fmt(h){ if(h>=48) return (h/24).toFixed(1)+’ days’; if(h>=1) return h.toFixed(1)+’ hours’; return (h*60).toFixed(0)+’ minutes’; } function render(){ var daily = dailyWh(), cap = capWh(), usable = cap*USABLE; var need = parseFloat(document.getElementById(‘lsh-hours’).value)||24; var out = document.getElementById(‘lsh-out’); if(daily= need; var color = ok ? ‘#00e676’ : ‘#ff7a18’; var msg = ok ? ‘✓ Runs your load for ‘+fmt(runtime)+’ — covers your ‘+need+’h need with margin.’ : ‘✗ Runs your load for ‘+fmt(runtime)+’ — short of your ‘+need+’h need.’; var rec = Math.ceil(required/500)*500; out.innerHTML = ‘
‘+ ‘
‘+fmt(runtime)+’
‘+ ‘
‘+msg+’
‘+ ‘
‘+ ‘Daily energy draw: ‘+Math.round(daily).toLocaleString()+’ Wh/day
‘+ ‘Usable capacity (‘+Math.round(USABLE*100)+’% of ‘+Math.round(cap).toLocaleString()+’ Wh): ‘+Math.round(usable).toLocaleString()+’ Wh
‘+ ‘For ‘+need+’h autonomy you need roughly a ‘+rec.toLocaleString()+’ Wh station
‘; } document.getElementById(‘lsh-add’).addEventListener(‘click’, function(){ addRow(PRESETS.length-1); render(); }); box.addEventListener(‘input’, render); box.addEventListener(‘change’, function(e){ if(e.target.classList.contains(‘lsh-pre’)){ var p = PRESETS[+e.target.value]; var r = e.target.closest(‘.lsh-row’); r.querySelector(‘.lsh-w’).value = p.w; r.querySelector(‘.lsh-d’).value = p.d; } render(); }); box.addEventListener(‘click’, function(e){ if(e.target.classList.contains(‘lsh-del’)){ e.target.closest(‘.lsh-row’).remove(); render(); } }); [‘lsh-cap’,’lsh-custom’,’lsh-hours’].forEach(function(id){ document.getElementById(id).addEventListener(‘input’, render); document.getElementById(id).addEventListener(‘change’, render); }); document.getElementById(‘lsh-cap’).addEventListener(‘change’, function(){ document.getElementById(‘lsh-custom-wrap’).style.display = this.value===’custom’ ? ‘block’ : ‘none’; }); addRow(0); addRow(3); addRow(5); render(); })();

How the math works

Runtime = usable watt-hours ÷ average hourly draw. Three things trip people up:

  • Usable capacity is less than advertised. Inverters and battery management eat 10–20%; we use 85% of nameplate Wh. A “1,024 Wh” station gives you ~870.
  • Duty cycle dominates. A fridge rated 150W doesn’t draw 150W for 24 hours — the compressor runs ~35% of the time in a cool kitchen. That’s why it lasts ~7 hours per 1,000 Wh, not 6.
  • Surge vs continuous. The calculator handles runtime; but your station’s continuous output must still exceed each device’s startup spike (fridges spike 800–1,200W for a fraction of a second). Every station we recommend covers this.

Rules of thumb, if you hate calculators

  • Phones + router + lights for a day: ~300 Wh
  • Add a fridge overnight: ~1,000 Wh
  • Fridge + freezer + medical gear for 24h: ~2,000 Wh
  • Multi-day outage with solar recharge: 2,000 Wh + 200W panel

What to buy with these numbers

Matched picks at every capacity tier are in our best portable power stations guide. If you’re sizing for a specific scenario — hurricane, winter storm, or California’s PSPS shutoffs — those guides have scenario-specific advice: hurricane prep, winter storm prep, PSPS guide.