May 31, 2026

SOP‑OPS‑VOL‑002 – Spontaneous Volunteer & Donations Management

HSCVS SOP-OPS-VOL-002 | Spontaneous Volunteers & Donations Management
HEAVEN SENT COMMUNITY SERVICES & VETERANS ASSISTANCE SOP‑OPS‑VOL‑002 • Spontaneous Volunteers & Donations Management • EIN 41‑2961092
STANDARD OPERATING PROCEDURE

Spontaneous Volunteers & Donations Management

How HSCVS handles walk‑up volunteers and unsolicited donations during disasters to increase capacity, avoid “second disasters,” protect safety, and meet FEMA/State EMA/VOAD and funder expectations. [web:241][web:259]
Document: SOP‑OPS‑VOL‑002
Version: 1.0
Effective: March 28, 2026
Review: March 28, 2027
Owner: Director of Operations
Approved by: Joseph Ryan, CEO
Service area: FL, MS, PA, LA
EIN: 41‑2961092
Aligned with FEMA & VOAD spontaneous volunteer guidance Controls “second disaster” from unwanted donations Supports in‑kind valuation & match tracking Field‑ready SV & donations tools

1. Purpose, scope & principles

Walk‑ups and truckloads without chaos

This SOP explains how HSCVS manages spontaneous volunteers and unsolicited donations during disasters so they support, not hinder, response and recovery. [web:241][web:259]

Principle. We channel community goodwill into safe, useful, and coordinated action rather than allowing it to create congestion, risk, or waste. [web:260][web:262]

Leader checklists

Quick reference during chaos

Spontaneous Volunteer Activation Checklist

  • Confirm with IC/DO that SV management is activated (sites, hours, scope). [web:241]
  • Set up intake area with SV‑INT‑01 forms, sign‑in logs, pens, and signage.
  • Brief greeters on safety messaging and referral to partners as needed. [web:260]

Donations Management Activation Checklist

  • Designate a Donations Coordinator and separate receiving location. [web:264]
  • Prepare DON‑OFF‑01, DON‑REC‑01, DON‑REQ‑01, and DON‑ACK‑01 templates. [web:224]
  • Issue clear public messaging emphasizing monetary donations first. [web:259][web:262]

SV‑INT‑01 — Spontaneous Volunteer Intake Form

By signing below, I certify that the information is accurate to the best of my knowledge, I agree to follow HSCVS safety rules and code of conduct, and I understand that HSCVS may or may not assign me based on needs and safety.

SV‑SIGN‑01 — Spontaneous Volunteer Sign‑In/Out Log

Date Site Volunteer name Task assigned Time in Time out Total hours Supervisor initials

DON‑OFF‑01 — Donations Offer Log

Used to record offers of goods or services, whether accepted or declined. [web:264]

Date Donor name / organization Contact info Items/services offered Approx. quantity Proposed delivery method/time Decision Notes / partner referral

DON‑REC‑01 — In‑Kind Donation Receipt

HSCVS acknowledges this in‑kind contribution for internal and grant‑reporting purposes; donors should consult their tax advisor regarding deductibility. [web:224][web:259]

DON‑ACK‑01 — In‑Kind Donation Acknowledgment Letter

Note: For tax purposes, HSCVS acknowledges receipt of the above‑described in‑kind donation and does not provide a monetary value. Donors should consult their tax advisor. [web:224][web:259]

DON‑REQ‑01 — In‑Kind Donation Request Letter

This request is for in‑kind support only. HSCVS will acknowledge any in‑kind contributions received in writing using our standard acknowledgment format and will not assign dollar values for tax purposes; donors should consult their tax advisor. [web:224][web:259]

`; } function initForm(cfg){ const formBox = document.getElementById(cfg.id); if(!formBox) return; const form = formBox.querySelector('form'); const status = formBox.querySelector('.status-line'); const key = cfg.storageKey; const title = formBox.getAttribute('data-form-title') || cfg.id; function setStatus(msg){ if(status) status.textContent = msg; } function saveToLocal(){ try{ const data = collectData(form); localStorage.setItem(key, JSON.stringify(data)); setStatus('Saved in this browser at '+new Date().toLocaleTimeString()+'.'); }catch(e){ setStatus('Could not save to this browser.'); } } function loadFromLocal(){ try{ const raw = localStorage.getItem(key); if(!raw) return; const data = JSON.parse(raw); applyData(form, data); setStatus('Draft loaded from this browser.'); }catch(e){ // ignore } } function downloadForm(){ const html = buildDownloadHtml(formBox, title); const blob = new Blob([html], {type:'text/html'}); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = cfg.downloadName || 'completed-form.html'; document.body.appendChild(a); a.click(); a.remove(); setTimeout(()=>URL.revokeObjectURL(url),1000); setStatus('Download started for this form.'); } function printForm(){ document.body.classList.add('print-mode'); const cleanup = ()=>{ document.body.classList.remove('print-mode'); window.removeEventListener('afterprint', cleanup); }; window.addEventListener('afterprint', cleanup); window.print(); setTimeout(cleanup,1200); setStatus('Print opened for this form.'); } formBox.querySelectorAll('[data-action]').forEach(btn=>{ btn.addEventListener('click',()=>{ const action = btn.getAttribute('data-action'); if(action==='save') saveToLocal(); if(action==='print') printForm(); if(action==='download') downloadForm(); }); }); loadFromLocal(); } FORM_CONFIG.forEach(initForm); })();