Emergency Supply Duration Calculator

ANALife Services AuthorityNational Calculator Authority›Emergency Supply Duration Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

Emergency Supply Duration Calculator

Estimate how long your emergency supplies (food, water, medicine, fuel, etc.) will last given your stock, daily consumption rate, and the number of people depending on them.

Supply Type / Name

Total Quantity on Hand

Unit of Measurement

Liters Gallons Kilograms (kg) Pounds (lbs) Cans / Servings Pills / Doses Gallons (Fuel) Custom Unit

Custom Unit Label

Number of People

Daily Consumption Per Person

Units per person per day (e.g. 2 liters/person/day for water)

Safety Buffer (%)

Reserve this percentage of supply as an emergency buffer (not counted toward usable days)

Calculate Duration

(function() { // Show/hide custom unit input document.getElementById('eme-unit').addEventListener('change', function() { var customGroup = document.getElementById('eme-custom-unit-group'); customGroup.style.display = (this.value === 'custom') ? 'block' : 'none'; updateUnitHint(this.value); });

function updateUnitHint(unit) { var hints = { 'liters': '2 liters/person/day is the minimum drinking water recommendation', 'gallons': '0.5 gallons/person/day is the minimum drinking water recommendation', 'kg': 'Average adult needs ~0.5 kg dry food/day (caloric equivalent)', 'lbs': 'Average adult needs ~1.1 lbs dry food/day (caloric equivalent)', 'cans': 'Typical serving: 1–2 cans per meal per person', 'pills': 'Enter prescribed daily dose per person', 'gallons_fuel': 'Depends on generator/vehicle consumption rate', 'custom': 'Enter your daily consumption per person in your chosen unit' }; var hint = hints[unit] || 'Units per person per day'; document.getElementById('eme-unit-hint').textContent = hint; }

window.emeCalc = function() { var errors = [];

var supplyName = document.getElementById('eme-supply-name').value.trim() || 'Supply';
var totalQty = parseFloat(document.getElementById('eme-total-quantity').value);
var unit = document.getElementById('eme-unit').value;
var unitLabel = (unit === 'custom')
? (document.getElementById('eme-custom-unit-label').value.trim() || 'units')
unit; var numPeople = parseInt(document.getElementById('eme-num-people').value, 10); var dailyPP = parseFloat(document.getElementById('eme-daily-per-person').value); var bufferPct = parseFloat(document.getElementById('eme-buffer-pct').value);

if (isNaN(totalQty) || totalQty = 100) errors.push('Safety buffer must be between 0% and 99%.'); if (unit === 'custom' && !document.getElementById('eme-custom-unit-label').value.trim()) errors.push('Please enter a label for your custom unit.');

var resultDiv = document.getElementById('eme-result'); resultDiv.style.display = 'block';

if (errors.length > 0) { resultDiv.innerHTML = 'Please fix the following:' + errors.map(function(e){ return ''; }).join('') + ''; return; }

// ── Core Calculations ────────────────────────────────────────────────────── // Usable quantity after reserving buffer var bufferQty = totalQty * (bufferPct / 100); var usableQty = totalQty - bufferQty;

// Total daily consumption for all people var totalDailyConsumption = dailyPP * numPeople;

// Duration in days (usable supply only) var durationDays = usableQty / totalDailyConsumption;

// Duration including buffer (full supply) var durationDaysFull = totalQty / totalDailyConsumption;

// Weeks and months (approximate) var durationWeeks = durationDays / 7; var durationMonths = durationDays / 30.4375; // average days per month

// Days until buffer is reached (same as durationDays) var daysToBuffer = durationDays;

// Recommended quantities for common preparedness targets var targets = [3, 7, 14, 30, 90]; var targetRows = targets.map(function(t) { var needed = totalDailyConsumption * t; var have = Math.min(100, (totalQty / needed) * 100); var status = (totalQty >= needed) ? '✅' : '❌'; return '' + '' + t + '-day supply' + '' + needed.toFixed(2) + ' ' + unitLabel + '' + '' + totalQty.toFixed(2) + ' ' + unitLabel + '' + '' + have.toFixed(1) + '%' + '' + status + '' + ''; }).join('');

// Readiness level var readinessLabel, readinessColor; if (durationDays ' + 'Total Quantity' + totalQty.toFixed(2) + ' ' + unitLabel + '' + 'Safety Buffer (' + bufferPct + '%)' + bufferQty.toFixed(2) + ' ' + unitLabel + '' + 'Usable Quantity' + usableQty.toFixed(2) + ' ' + unitLabel + '' + 'People' + numPeople + '' + 'Daily Consumption Per Person' + dailyPP.toFixed(2) + ' ' + unitLabel + '/person/day' + 'Total Daily Consumption' + totalDailyConsumption.toFixed(2) + ' ' + unitLabel + '/day' + ''

'
'')

#### Formulas Used

Buffer Quantity: Buffer Qty = Total Quantity × (Buffer % ÷ 100)

Usable Quantity: Usable Qty = Total Quantity − Buffer Qty

Total Daily Consumption: Total Daily = Daily Per Person × Number of People

Duration (days): Duration = Usable Qty ÷ Total Daily Consumption

Duration (weeks / months): Weeks = Duration ÷ 7  |  Months = Duration ÷ 30.4375

Target Coverage (%): Coverage = (Total Quantity ÷ (Total Daily × Target Days)) × 100

#### Assumptions & References

More Calculators

Read Next

Event Venue Capacity Planner ANA › Life Services Authority › National Calculator Authority › Event Venue Capacity Planner .calc-container { max-width:...

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References