PantryInsight
Dashboard Preview
Monthly Reporting · Live Data API
March 2026
|
Data flow: your case-management system → secure cloud → Dashboard. Records sync automatically each night; use Sync from API to pull immediately.
This Month
Total Household Visits
Selected month only
Total People Served
Selected month only
Pounds of Food Distributed
Selected month only
Boxes / Bags / Kits
Selected month only
Year-to-Date Totals
Total Household Visits
Total People Served
Pounds of Food Distributed
All food programs · YTD
Boxes / Bags / Kits
Non-food · YTD cumulative
Key Ratios
Avg Visits / Family
Visits ÷ unique families · YTD
Client Retention
Returning ÷ all families · YTD
Pounds / Individual
Food lbs ÷ people served · YTD
Est. Cost / Household
Estimate · YTD
Unhoused Share
Unhoused ÷ unique families · YTD
Program Breakdown
Program Breakdown (YTD)
Monthly Household Visits Trend
All-Time Totals
Total Household Visits
All programs · all time
Total People Served
All programs · all time
Pounds of Food Distributed
All food programs · all time
Boxes / Bags / Kits
Non-food programs · all time
AI Insight
Loading AI insight…
📍
County data = client's home county, not the location where they were served. It comes from the county field on each household's case record. Rainbow Bridge is partner event/location data, so it appears under Partner Locations and Program Activity instead of this home-county chart.
All Programs by County — Household Visits (YTD)
County Coverage
Coverage of County
Unique families ÷ population
Unique Families Served · YTD
Distinct households this year
County Population (est.)
Config: COUNTY_POPULATION
County Statistics — All-Time Totals
Source: Agency Assistance Report · All years  · 
All-Time Program Totals
Source: Agency Assistance by Category · synced securely
Assistance Records
92,507
All programs · all time
Unique Households
12,437
37,426 total members · all time
Pounds of Food Distributed
2.57M
All food programs · all time
Boxes / Bags / Kits
25,518
Incl. diapers & period kits
Households Served by Program — All Time
Pounds of Food Distributed by Program — All Time
Demographics
Communities of Color Served
of households with demographic data
— households from non-White/Caucasian communities · YTD
Unhoused
Veterans
Non-English
Advanced HOH Query AND conditions
Count HOHs matching all selected conditions
Gender
Ethnicity · Minority Focus
Veteran Status
Employment Status
Government Benefits (multi-select — counts exceed total households)
Primary Language · Non-English Focus
Education Level
Household Size Distribution
Age Group (YTD)
Housing Status
Visit Frequency Distribution
Program Activity
New Families
First visit ever this year (YTD)
Returning Families
Visited in prior years too (YTD)
Unique Households
Distinct families served (YTD)
Program Activity — Year to Date
🛒
Households
Magic Star
— lbs
🏠
Households
Purple Unicorn
— lbs
🚐
Rocket Cart Events
— HH
— lbs
🏪
Bouncy Castle Events
— HH
— lbs
🏢
Households
Rainbow Bridge
— agencies
— lbs
🍳
Green Dragon
— HH
— lbs
🌙
Households
Night Owl
— lbs
📦
Households
Golden Bear
— lbs
🛵
Households
Speedy Penguin
— lbs
🍱
Super Nova
— lbs
(not included in total)
Non-Food Programs — Year to Date
🍼
Unique Households
Cozy Cloud Diapers
packs distributed
🌊
Unique Households
Period Kits (Sugar Plum)
kits distributed
👕
Unique Households
Clothing Vouchers
Sunny Meadow · vouchers
🎒
YTD total
Homeless Backpacks
packs distributed
📋
How programs are counted:
Magic Star — daytime drive-thru visits where the Oasis category contains "Magic Star" or "Magic Star" but does not contain "Evening". Does not include DoorDash deliveries. Each assistance record = one household visit.
Night Owl — Oasis categories containing "Evening" (e.g. "Evening Magic Star"). Tracked separately from Magic Star.
Speedy Penguin — Oasis categories containing "Door Dash" or "DoorDash". Tracked separately from Magic Star.
Purple Unicorn — in-person choice shopping visits where the Oasis category contains "Purple Unicorn".
Rocket Cart — off-site community outreach; Oasis category is exactly "Rocket Cart". Event count = COUNT(DISTINCT date).
Bouncy Castle — events with Oasis event type "Pop up Pantry" or "Senior Pop Up". HH and lbs pulled from event activity values.
Green Dragon — events with Oasis event type "Green Dragon" / "Re-Start Kitchen". HH and lbs pulled from event activity values.
Golden Bear — assistance records where the Oasis category contains "Golden Bear". Each record = one household visit.
FoodLink — food distributed to partner agencies via the Oasis Events module (event type = "FoodLink"). Each event = one partner distribution session; agency count = distinct locations served.
Cozy Cloud Diapers — Oasis categories containing "Cozy Cloud" or "Diaper". Pack count = SUM(amount) where unit = Boxes/Bags.
Period Kits (Sugar Plum) — Oasis categories containing "Period Kit" or "Sugar Plum". Kit count = SUM(amount) where unit = Boxes/Bags.
Clothing Vouchers — Oasis categories containing "Clothing Voucher", distributed through Sunny Meadow. Count = SUM(amount).
Homeless Backpacks — event activity total where activity name = "Homeless Backpacks". Counts packs distributed across all event types.
Service Days per Program · This Month
Program Drill View
Household Visits · YTD
Pounds · YTD
Avg Pounds / Visit
Service Days · This Month
Year-over-Year Monthly Growth
% change in household visits vs the same month in the prior year — green = growth, red = decline
New vs Returning Households
Monthly breakdown of first-time (new) vs returning families — green = returning base, blue = new intake
📋 API & SQL Reference
CSV ↔ SQL Mapping
Main Programs
Mobile by County
Age Breakdown
Events / FRH
Full YTD Summary
Oasis Assistance Report Field Mapping
-- Core summary mapping (CSV ↔ SQL)
-- Duplicated household count  -> COUNT(*) on assistance_assistance within date range
-- Duplicated member count     -> SUM(COALESCE(ch.case_count,1))
-- Household count (unique)    -> COUNT(DISTINCT aa.case_id)
-- Assistance count            -> COUNT(*)

SELECT
  COUNT(*) AS duplicated_household_count,
  COUNT(DISTINCT aa.case_id) AS household_count,
  SUM(COALESCE(ch.case_count, 1)) AS duplicated_member_count,
  COUNT(*) AS assistance_count
FROM assistance_assistance aa
JOIN cases_case hoh ON hoh.id = aa.case_id
LEFT JOIN cases_household ch ON ch.id = hoh.household_id
WHERE aa.date >= '{{start_date}}' AND aa.date < '{{end_exclusive}}';
Demographics Mapping (EAV)
-- CSV columns like Gender/Ethnicity/Employment/Veteran/Benefits/Language
-- come from cases_casedetail (EAV model) + details tables

SELECT
  dg.name  AS detail_group,
  dd.name  AS detail_name,
  COUNT(DISTINCT aa.case_id) AS households
FROM assistance_assistance aa
JOIN cases_casedetail ccd ON ccd.case_id = aa.case_id
JOIN details_detail dd ON dd.id = ccd.detail_id
JOIN details_group dg ON dg.id = dd.group_id
WHERE aa.date >= '{{start_date}}' AND aa.date < '{{end_exclusive}}'
  AND dg.name IN ('Gender','Ethnicity','Employment','Veteran','Government Benefits','Language','Education')
GROUP BY dg.name, dd.name
ORDER BY dg.name, households DESC;
Date Field Rule
-- Oasis CSV "Assistance Date" matches assistance_assistance.date
-- Use aa.date for report alignment (not entry_date fields).
Magic Star (D) — households & individuals
-- Magic Star duplicated household + member counts
SELECT
  COUNT(*) AS duplicated_households,
  SUM(COALESCE(ch.case_count, 1)) AS duplicated_members
FROM assistance_assistance aa
JOIN assistance_category ac ON aa.category_id = ac.id
JOIN cases_case hoh ON hoh.id = aa.case_id
LEFT JOIN cases_household ch ON ch.id = hoh.household_id
WHERE (ac.name LIKE '%Magic Star%' OR ac.name LIKE '%Magic Star%'
    OR ac.name LIKE '%Door Dash%' OR ac.name LIKE '%DoorDash%')
  AND aa.date >= '{{start_date}}' AND aa.date < '{{end_exclusive}}';
Market (C) — households & individuals
-- Market (Purple Unicorn) duplicated household + member counts
SELECT
  COUNT(*) AS duplicated_households,
  SUM(COALESCE(ch.case_count, 1)) AS duplicated_members
FROM assistance_assistance aa
JOIN assistance_category ac ON aa.category_id = ac.id
JOIN cases_case hoh ON hoh.id = aa.case_id
LEFT JOIN cases_household ch ON ch.id = hoh.household_id
WHERE ac.name LIKE '%Purple Unicorn%'
  AND aa.date >= '{{start_date}}' AND aa.date < '{{end_exclusive}}';
Rocket Cart (M) — households & individuals
-- Rocket Cart duplicated household + member counts
SELECT
  COUNT(*) AS duplicated_households,
  SUM(COALESCE(ch.case_count, 1)) AS duplicated_members
FROM assistance_assistance aa
JOIN assistance_category ac ON aa.category_id = ac.id
JOIN cases_case hoh ON hoh.id = aa.case_id
LEFT JOIN cases_household ch ON ch.id = hoh.household_id
WHERE ac.name = 'Rocket Cart'
  AND aa.date >= '{{start_date}}' AND aa.date < '{{end_exclusive}}';
Rocket Cart by County — with vs. without children
-- Rocket Cart by county with/without children
SELECT
  COALESCE(dc.name, 'Other') AS county,
  SUM(CASE WHEN ch.max_dob > DATE_SUB(CURDATE(), INTERVAL 18 YEAR) THEN 1 ELSE 0 END) AS with_children,
  SUM(CASE WHEN ch.max_dob IS NULL OR ch.max_dob <= DATE_SUB(CURDATE(), INTERVAL 18 YEAR) THEN 1 ELSE 0 END) AS without_children,
  COUNT(*) AS duplicated_households
FROM assistance_assistance aa
JOIN assistance_category ac ON aa.category_id = ac.id
JOIN cases_case hoh ON hoh.id = aa.case_id
JOIN cases_household ch ON ch.id = hoh.household_id
LEFT JOIN details_county dc ON dc.id = ch.county_id
WHERE ac.name = 'Rocket Cart'
  AND aa.date >= '{{start_date}}' AND aa.date < '{{end_exclusive}}'
GROUP BY county
ORDER BY duplicated_households DESC;
Age breakdown — Magic Star + Market + Mobile
-- Duplicated member age counts (each visit x each household member)
WITH visits AS (
  SELECT aa.id, aa.case_id
  FROM assistance_assistance aa
  JOIN assistance_category ac ON ac.id = aa.category_id
  WHERE (ac.name LIKE '%Magic Star%' OR ac.name LIKE '%Magic Star%'
      OR ac.name LIKE '%Door Dash%' OR ac.name LIKE '%DoorDash%'
      OR ac.name LIKE '%Purple Unicorn%' OR ac.name = 'Rocket Cart')
    AND aa.date >= '{{start_date}}' AND aa.date < '{{end_exclusive}}'
)
SELECT
  SUM(CASE WHEN TIMESTAMPDIFF(YEAR, c2.date_of_birth, CURDATE()) < 18 THEN 1 ELSE 0 END)  AS dup_members_0_17,
  SUM(CASE WHEN TIMESTAMPDIFF(YEAR, c2.date_of_birth, CURDATE()) BETWEEN 18 AND 59 THEN 1 ELSE 0 END) AS dup_members_18_59,
  SUM(CASE WHEN TIMESTAMPDIFF(YEAR, c2.date_of_birth, CURDATE()) >= 60 THEN 1 ELSE 0 END) AS dup_members_60_plus,
  SUM(CASE WHEN c2.date_of_birth IS NULL THEN 1 ELSE 0 END) AS dup_members_unknown
FROM visits v
JOIN cases_case hoh ON hoh.id = v.case_id
JOIN cases_case c2 ON c2.household_id = hoh.household_id AND c2.deceased = 0;
FoodLink — events & unique agencies
-- FoodLink events and unique agencies
SELECT
  COUNT(*) AS frh_events,
  COUNT(DISTINCT ee.location_id) AS unique_agencies
FROM events_event ee
JOIN events_eventtype et ON ee.event_type_id = et.id
WHERE et.name = 'FoodLink'
  AND ee.date >= '{{start_date}}' AND ee.date < '{{end_exclusive}}';
Bouncy Castle Pantries + Green Dragon events
-- Bouncy Castle + Green Dragon event totals
SELECT
  et.name,
  COUNT(*) AS events
FROM events_event ee
JOIN events_eventtype et ON ee.event_type_id = et.id
WHERE et.name IN ('Pop up Pantry', 'Senior Pop Up', 'Green Dragon/Re-Start Kitchen')
  AND ee.date >= '{{start_date}}' AND ee.date < '{{end_exclusive}}'
GROUP BY et.name
ORDER BY events DESC;
Complete YTD summary — all programs
-- YTD master summary aligned to Oasis assistance report logic
SELECT
  COUNT(*) AS duplicated_household_count,
  COUNT(DISTINCT aa.case_id) AS household_count,
  SUM(COALESCE(ch.case_count, 1)) AS duplicated_member_count,
  ROUND(SUM(CASE WHEN aa.unit_id = 2 THEN aa.amount ELSE 0 END)) AS pounds_distributed,
  ROUND(SUM(CASE WHEN aa.unit_id = 3 THEN aa.amount ELSE 0 END)) AS boxes_bags_distributed
FROM assistance_assistance aa
JOIN assistance_category ac ON ac.id = aa.category_id
JOIN cases_case hoh ON hoh.id = aa.case_id
LEFT JOIN cases_household ch ON ch.id = hoh.household_id
WHERE aa.date >= '{{start_date}}' AND aa.date < '{{end_exclusive}}'
  AND (ac.name LIKE '%Magic Star%' OR ac.name LIKE '%Magic Star%'
    OR ac.name LIKE '%Door Dash%' OR ac.name LIKE '%DoorDash%'
    OR ac.name LIKE '%Purple Unicorn%'
    OR ac.name = 'Rocket Cart'
    OR ac.name LIKE '%Green Dragon%' OR ac.name LIKE '%Golden Bear%');
Monthly Manual Inputs
Source: —
InKind lbs
FSFB lbs
Milk (cases)
Eggs (dozens)
Other food lbs
Composted lbs
Upcycled lbs
Non-food recyclables lbs
Manual Inputs Tracking & Forecast
Loading tracking data…
Manual Input lbs — YTD by year
Monthly Manual Inputs + 6-Month Forecast
Food Waste vs Net Served
Food Waste — Year over Year
Monthly Impact Report
Prints the live report on this page directly in Chrome, Arc, Safari, and save-to-PDF flows.
PantryInsight
MONTHLY IMPACT REPORT
Overview
Total Household Visits
Families
Unique Households
Families
Total People Served
Individuals
Program
Total Pounds of
Food Distributed
Magic Star
lbs
Purple Unicorn
lbs
Rocket Cart
lbs
Rainbow Bridge
(Partner Agencies)
lbs
Demographic
Veterans
Unhoused
Non-English
Non-White
Unemployed
HH with
Children
Household Composition
Gender (Household Representatives)
Age Group (All Household Members)
Service Map
Households served by county
WARREN CLINTON HIGHLAND HAMILTON CLERMONT BROWN ADAMS
Growth Trends
Monthly Visits · Jan-Dec
Busiest Day of Week
Peak Hour
Repeat Visitors
Most Popular Day of Week
Total check-ins per day across selected period
Click a bar to filter hour chart
Peak Hours
Visit volume by hour of day
Click a bar to filter day chart
Seasonal Trends
Average monthly visit volume by calendar month
Visit Frequency Analytics
How often clients return — households by number of visits
Week-by-Week vs Prior Years
How each week of the selected month performed historically, week by week across years
Year-by-Year
Total household visits per calendar year
Return Analytics
Two complementary retention metrics — different cohorts, both matter
Returning Households (cross-year)
of this year's households
Visited this year AND had visited in a prior year. Different from "Repeat Visitors" above — that counts 2+ visits within this year only.
Non-Returners from Last Year
households haven't come back
Visited in , not yet seen in .
Visitor Behavior
Preferred Week of Month
Which week of the month families tend to visit — useful for staffing
Family Loyalty
How families engage — single program vs multi-program, and same-week regulars
Loading…
Gaps & Churn Signals
Households that paused or lapsed — early warning signals for outreach
Loading…
Forecast Drivers
How behavior patterns shape the 6-month projection
Loading…
Monthly Visit Trend + 6-Month Forecast
All-time monthly totals with linear trend projection
Agent Activity Heatmap — When Staff is Busiest
Check-in volume by day of week × hour of day
Low
High
Top Staff by Activity
Agents ranked by number of check-ins recorded
Staff Activity by Day of Week
When each top agent is most active
Anomaly & Alerting — Unusual Traffic Spikes / Dips
Months where visit volume was more than 2 standard deviations from the 12-month rolling baseline
Loading…
Avg lbs / food visit
Avg household size
Avg days between visits
Client Journey Funnel
Attrition from first visit → food → repeat → multi-service
Loading…
Appointment Scheduling Stats
Scheduled vs confirmed, lead time distribution
Location Utilization
Event count and active days per partner location (all time)
Cohort / Retention Analysis
Each row = clients whose first visit was that month. Columns = % still returning in subsequent months (M+1 … M+11). Darker green = better retention.
Loading…
📌
No charts pinned yet. Click the + button on any chart card across the dashboard to pin it here.
Configure your report on the left,
then click Generate Report.
Loading…