Emergency Supply Duration Calculator
ANA›Life Services Authority›National 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' + ''
- ''
- 'Usable Supply Duration:'
- ''
- durationDays.toFixed(1) + ' days'
- ''
- ''
- '≈ ' + durationWeeks.toFixed(1) + ' weeks | ≈ ' + durationMonths.toFixed(2) + ' months'
- ''
- ''
- 'Readiness Level: ' + readinessLabel
- ''
-
''
-
(bufferPct > 0 ? 'Including the ' + bufferPct + '% buffer, total supply would last '
- durationDaysFull.toFixed(1) + ' days if the buffer were used.
- '
- '')
- '#### Preparedness Target Comparison '
- ''
- ''
- 'Target'
- 'Needed'
- 'You Have'
- 'Coverage'
- 'Met?'
- ''
- '' + targetRows + ''
- ''; }; })();
#### 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
- The minimum drinking water recommendation is 1 gallon (≈ 3.8 L) per person per day for drinking and sanitation — FEMA / Ready.gov.
- A 3-day supply is the minimum recommended by FEMA for short-term emergencies; 2 weeks is recommended for extended disruptions.
- The safety buffer represents a reserve that should only be used as a last resort; it is excluded from the primary duration calculation.
- One month is approximated as 30.4375 days (365.25 ÷ 12) for consistency.
More Calculators
- Well Pump Horsepower & Flow Rate Calculator
- Water Damage Restoration Cost Calculator
- Well Pump Cycle Rate Calculator
- Window Rough Opening Size Calculator
- Replacement Window Fit and Clearance Calculator
- Leak Detection Pressure Drop Calculator
- Attrition Rate Calculator
- Event Venue Capacity Planner
- Denver Hotel Occupancy Rate Calculator
- Denver Event Venue Capacity & Revenue Calculator
- Florida Tourism Tax Calculator
- Facility Maintenance Labor Cost Calculator
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;...