Inspiration
Drought decisions are often made only after crop stress is visible. Farmers need localized, understandable signals that help them act early, not raw weather charts or generic warnings. Reverse Drought Engine was inspired by the need to turn Kenyan weather observations into practical decisions about water, soil, and crop protection.
What it does
Reverse Drought Engine combines current weather readings with evapotranspiration, effective rainfall, water deficit, heat stress, and soil-moisture depletion estimates. It provides two recommendation paths: local drought signatures for immediate risk detection and Machakos climate analogues for longer-term interventions such as terracing, water pans, and hillside tree planting.
The dashboard includes Now, Why, and What-if views. Recommendations are ranked by resource tier and can be presented through dashboard, SMS, voice, or extension-officer channels, with English and Swahili support. The system also exposes assumptions, evidence, warnings, and trust records instead of hiding uncertainty.
How we built it
We built a typed FastAPI/Python backend and a React/TypeScript frontend. The backend uses replaceable fixture, recorded-response, and live Conduit adapters, deterministic climate calculations, documented recommendation rules, feasibility ranking, delivery formatting, and a trust ledger. The frontend is packaged with Vite and Nginx, while Docker Compose provides a deployment-shaped two-service stack.
The project includes reproducible dry, normal, and wet scenarios, a recorded Conduit replay, API and frontend tests, safe logging, health checks, and an end-to-end demo path.
Challenges we ran into
The biggest challenge was designing useful recommendations without pretending the data is more precise than it is. The live Conduit endpoint, authentication flow, historical data contract, retention depth, and SI1145 irradiance units still require confirmation. We also do not yet have enough labeled historical stress episodes to calibrate local drought signatures.
Another challenge was making recommendations feasible for different farmers. A technically sound intervention is not useful if it assumes water, labor, money, or transport that the farmer does not have, so feasibility and resource constraints are part of the recommendation flow.
Accomplishments that we're proud of
We built a complete working MVP from data ingestion to farmer-facing action. It includes explainable risk scoring, reverse-solved irrigation guidance, evidence-linked climate analogues, resource-aware ranking, trusted delivery formats, a three-view dashboard, and stateless what-if scenarios.
We are also proud of the reproducible demo experience: fixture profiles and recorded data make the system testable without a live station, while warnings clearly distinguish estimates, stale readings, missing history, and illustrative trust data.
What we learned
Actionable climate tools need context, not just predictions. Weather signals become much more useful when combined with land size, water access, resource tier, language, delivery channel, and a clear explanation of why a recommendation was made.
We also learned that transparent uncertainty builds more trust than false precision. Replaceable data adapters, explicit assumptions, deterministic replay, and evidence links make it easier to validate the system and improve it with real field data.
What's next for Reverse Drought Engine
Next, we will confirm and activate the authenticated live Conduit integration, add historical ingestion, calibrate SI1145 measurements, and validate the drought signatures with labeled field episodes. We will replace illustrative trust records with farmer confirmations, extension-officer feedback, and follow-up satellite evidence.
Further work will include localized crop and soil models, stronger offline and low-bandwidth delivery, additional languages, and field pilots with farmers and extension teams. Any parametric payout or testnet feature will come only after the core recommendations, evidence, and trust layer are validated.
Built With
- conduit-weather-data
- docker
- docker-compose
- fastapi
- json-fixtures
- nginx
- pydantic
- pytest
- python
- react
- ruff
- typescript
- uvicorn
- vite
- vitest
Log in or sign up for Devpost to join the conversation.