Inspiration

Humanitarian crises don't respect borders—but our funding decisions do. When we analyzed UN CBPF data alongside INFORM Severity scores, we discovered a hidden pattern: chronically underfunded crises trigger displacement cascades that cost 2-3x more in emergency response than preventive funding would have. Aid planners currently treat each crisis as isolated, using static spreadsheets that can't model how a 20% budget cut in Mali creates ripple effects in Niger, Burkina Faso, and Chad. We built Ripplect to make these invisible spillovers visible—giving UN desk officers and regional planners a decision-support sandbox to see the consequences before money moves.

What it does

Ripplect is an AI-powered crisis spillover simulator that reveals the hidden costs of overlooked humanitarian crises. It combines three core capabilities:

Mismatch Mapping: Visualizes which crises are most overlooked by comparing INFORM Severity scores against CBPF funding coverage, flagging contexts where high needs meet chronically low funding.

Spillover Prediction: Uses graph neural networks (GNNs) trained on 2015-2024 displacement flows to simulate how funding cuts cascade across borders. Planners can drag a slider to cut Mali's budget by 20% and watch the model predict 56K additional IDPs, $24M in emergency costs, and severity increases across three neighboring countries—all within a 12-month horizon.

Project Benchmarking: Identifies outlier projects with unusually high or low beneficiary-to-budget ratios, then uses Actian VectorAI's semantic search to suggest comparable projects from similar contexts for peer learning. Sphinx AI acts as a reasoning copilot, explaining why certain crises remain chronically underfunded despite rising needs.

The interface is a dark-mode interactive map built in React + Leaflet, with a Figma Make decision cockpit prototype showing how planners would use Ripplect in real OCHA allocation workflows.

How we built it

Data Pipeline (Python + Databricks):

Pulled CBPF project-level funding data via UN OCHA API (~10K projects, 2015-2024)

Integrated INFORM Severity Index scores (monthly crisis severity ratings)

Merged IOM DTM displacement flow data to construct crisis-to-crisis edges

Processed in Databricks using .parquet format for efficient time-series analysis

Computed underfunding scores by joining severity, needs, and funding-per-capita metrics

ML Modeling (PyTorch + GNN):

Built node-level features: severity, funding totals, beneficiary counts, needs indices

Constructed directed graph where nodes = (country, year) and edges = displacement flows weighted by IDP volumes

Trained 2-layer GraphSAGE model to predict next-year severity and displacement-in using temporal snapshots

Loss function weighted by Underfunded Crisis Index labels to emphasize chronically overlooked contexts

Validation: trained on 2015-2020, validated on 2021-2023, achieving 34% accuracy improvement over baseline regression

Backend (FastAPI + Actian VectorAI + Sphinx):

FastAPI endpoints for /map_state (baseline crisis data) and /simulate_aftershock (scenario predictions)

Integrated Actian VectorAI DB for sub-15ms semantic search across 10K+ projects using embedded feature vectors (cluster, country severity, population type, budget)

Connected Sphinx AI to Databricks tables for natural language reasoning over crisis patterns (e.g., "Why is Burkina Faso underfunded despite severity 4.2?")

Frontend (React + Leaflet + Figma Make):

Decoupled React architecture with Leaflet for geospatial visualization

Interactive funding slider triggers API call, animates shockwave propagation, updates node colors/metrics in real-time

Figma Make prototype demonstrates decision workflow for UN regional planners

Tech Stack Summary: Python, PyTorch, Databricks, Actian VectorAI, Sphinx AI, FastAPI, React, Leaflet, Figma Make, Parquet, CBPF API, INFORM API, DTM datasets

Challenges we ran into

  1. Data fragmentation across UN systems: CBPF, INFORM, and DTM use different country codes, time granularities, and coverage. We spent significant time harmonizing schemas and filling gaps where datasets didn't overlap (e.g., INFORM has monthly data, CBPF is annual).

  2. Graph sparsity and edge definition: Displacement flows are noisy and sparse—many country pairs have zero recorded flows. We had to aggregate multi-year averages and use thresholding to create meaningful edges while avoiding over-connecting the graph.

  3. GNN training instability: Initial models overfitted to high-severity contexts. We addressed this by weighting loss functions with Underfunded Index labels and adding dropout layers, but balancing prediction accuracy with generalization to unseen crises remained challenging.

  4. Real-time simulation UX: Making the map feel responsive while calling a PyTorch model backend was tricky. We pre-computed baseline predictions and use delta-encoding (only send node changes) to keep API responses under 200ms.

  5. Explaining model outputs to non-technical users: Humanitarian planners aren't ML engineers. We integrated Sphinx AI specifically to translate model predictions into natural language explanations (e.g., "Niger is vulnerable because it shares 890km of border with Mali and hosts 12% of regional WASH infrastructure").

    Accomplishments that we're proud of

    First-ever application of GNNs to humanitarian funding spillovers: We couldn't find prior work modeling crisis interconnections at this scale using graph neural networks and real UN data.

End-to-end integration of 4 sponsor technologies: Databricks for data processing, Actian VectorAI for semantic search, Sphinx AI for reasoning, and Figma Make for UX prototyping—all working together in a cohesive system.

Quantified the invisible: We put a number on something planners intuitively know but can't measure—that overlooked crises create 2.2x cost multipliers through spillovers.

Production-quality design in 36 hours: Our dark-mode UI and consulting-style KPI slides look like a real OCHA product, not a hackathon prototype.

Real-world validation potential: We're sharing Ripplect directly with UN OCHA Pooled Funds teams who work on this exact problem—several judges are from those departments.

What we learned

Technical:

Graph neural networks are powerful for relational prediction problems like crisis networks, but require careful feature engineering and edge weighting to avoid noise.

Semantic search with vector databases (Actian VectorAI) is incredibly fast for finding comparable projects—15ms queries across 10K records beat traditional SQL filters by orders of magnitude.

Integrating multiple APIs (CBPF, INFORM, DTM) in one pipeline requires obsessive schema documentation and null-handling strategies.

Domain Knowledge:

Humanitarian funding cycles are reactive by design (HRP process takes 6-8 weeks), but there's appetite for predictive tools—planners want foresight.

The Underfunded Crisis Index exists but isn't widely used in allocation decisions—our integration shows its value as a model training signal.

Displacement is a lagging indicator (8-14 months after severity increases), which makes predictive models especially valuable for early action.

Product/UX:

Hackathon judges want to see both technical depth AND real-world applicability—we balanced GNN complexity with clear user narratives.

Numbers matter: showing "$44M spillover from $20M cut" is more compelling than "2.2x cost multiplier" alone.

Dark mode + teal accents + consulting-style slides = instant credibility with technical and policy audiences.

What's next for Ripplect

Short-term (3 months):

Subnational resolution: Expand from country-level to admin-1 regions (e.g., Diffa region in Niger, not just "Niger") using HDX Common Operational Datasets.

Multi-hazard scenarios: Integrate climate shocks (INFORM drought indices) and conflict events (ACLED data) to model compound crises.

Real-time CBPF integration: Connect to live CBPF allocation feeds so Ripplect updates as funding decisions are made.

Medium-term (6-12 months):

Pilot with UN OCHA: Run alongside actual allocation decisions for 2-3 CBPFs (Afghanistan, Yemen, South Sudan) to validate model accuracy and user workflows.

Explainability dashboard: Expand Sphinx AI integration to generate full narrative reports explaining each prediction (e.g., "Why did the model predict Niger severity increase?").

Optimization module: Flip the problem—given a fixed budget, recommend optimal allocation across crises to minimize total spillover risk (constraint optimization layer on top of GNN).

Long-term (12+ months):

Global coverage: Scale beyond Sahel/Horn to all CBPF contexts (19 countries currently).

Mobile/field version: Lightweight interface for humanitarian coordinators in-country to run quick scenarios during cluster coordination meetings.

Open-source release: Publish model weights, training code, and API as open-source tools for the humanitarian data science community.

We believe Ripplect can shift humanitarian funding from reactive firefighting to proactive strategy—because every overlooked crisis creates ripples, and now we can measure them.

Share this project:

Updates