What I Built
My friend Anuka and her family use a road in Kaski, near Pokhara. In the monsoon the practical question is whether it is worth travelling in the next few days. Because of the monsoon, she couldn't travel to her grandfather's home for a major festival.
see the message that she sent me.
I built a small tool that reads rainfall forecasts and writes a short message, in English and Nepali, that can be forwarded on Viber or WhatsApp.
Pick a district and press "Check next 3 days". For each of the next three days the app shows a risk percentage, like "Risk: 68% (680 of 1,000 forecast scenarios)", made by running 1,000 rainfall scenarios from 122 pooled ensemble members (ECMWF 51, GFS 31, ICON 40) through a rainfall rule. Below that are a forwardable message in English and Nepali, a fallback chain (SMS, Viber group, community volunteer, siren or flag), a "Network available?" toggle that shows only the chain when phones are down, and a fixed footer: "This is not an official warning. Follow DHM and local authorities."
Demo
https://www.youtube.com/watch?v=74cPgbodn5M
Code
https://github.com/Siddhartha20242/priorlabshackathon
How I Built It
I compared three rainfall rules against landslide days reported for Kaski on Nepal's BIPAD portal. The first is cumulative 3 day rain. The second is antecedent precipitation (API). The third is an intensity duration (I-D) line published for the Kanti Roadway. Each was tried as published or with a simple threshold, and again with parameters tuned on training years only (monsoon seasons 2015-2021, 854 days, 41 landslide days). All were scored on the 2022-2024 monsoons (366 days, 33 landslide days). The Kanti study is from Bagmati Province, not Kaski.
The risk percentage is the share of scenarios that cross the rain level linked to reported landslides. It is not the chance of a landslide: in the 2022-2024 monsoons, on the days the rule fired, a landslide was reported in Kaski on 35% of them (8 of 23), against 9% of all monsoon days.
No method wins. The intervals all overlap, running from about 0.00 to 0.49 on 33 landslide days. The 77 mm rule's score is flattered because its threshold was chosen on the test years; tuned on training years it falls to 0.13, and moving it from 183 mm to 186 mm changes F1 from 0.17 to 0.13. The published I-D line fires on about 28% of Kaski monsoon days and stays on for about two weeks after a big storm, so I recalibrated it. The version in the app fires on about 6% of monsoon days. I picked it because it raises fewer false alarms, not because it scored higher.
TabPFN v2 on richer features (antecedent rainfall, soil moisture, lagged rain) had the highest nominal F1, 0.33, and for a while it looked like the winner. The apparent win was a one-year artifact. Its F1 was 0.00 in 2022, 0.11 in 2023 and 0.58 in 2024, so the whole result came from 2024. Its cross-validated AUC inside the training years was 0.45, below chance, and at serving time it would need soil moisture from a different source than the one it was trained on. For those reasons I did not put it in the app. I used TabPFN v2; the newer versions' license acceptance did not register on my account and I did not use them. Built with TabPFN v2 (Prior Labs).
Why Does Open Innovation Matter?
The rule and the message layer run on a laptop. The rainfall data and ensemble forecasts come from Open-Meteo, which needs no key. The English message is written by Gemma 3 4B through Ollama on the same machine, with nothing leaving the device. The Nepali message is a fixed template, because Gemma's Nepali was unreliable in my tests (invented words, wrong month names). The interface is a local Streamlit prototype. Fetching the forecast needs internet, so this tool does not work offline in the hills. The offline part is the human chain in the fallback list: people who can pass a warning on when phones and the app cannot.
Limits
It only looks at rain. The August event was an ice-rock avalanche, which a rainfall model is not built to predict.
Incident data is reported events on BIPAD, not every landslide. Eight of the 124 Kaski landslide days fall outside June-September and were excluded.
The test set has 33 landslide days. I did not compute confidence intervals for the app's live output.
Rainfall is reanalysis for a grid cell at about 1,615 m near the district centroid, not gauge data and not the road. The ensemble spread likely understates real forecast error: day-ahead forecasts differed from reanalysis by about 5 to 8 mm a day on average in the periods I checked.
The app has only been tested on live off-season (October) forecasts and on synthetic and forced high-risk cases, because it is not monsoon season.
Other districts reuse the Kaski model and are not validated. The app says so.
Neither the English (Gemma 3 4B) nor the Nepali (fixed template) has been reviewed by a native speaker. Early on, Gemma's English made errors, including inventing and inverting a risk percentage. The app now accepts Gemma's English only if its risk percentages match the numbers on screen exactly, it ends with the exact disclaimer and stays under 60 words; otherwise it shows a fixed template. About a dozen final test calls passed, which is a small sample, and the wording can still be stilted.
This is not an official warning. Follow DHM and local authorities.
Prize Categories:
-
Best Use of TabPFN
- I trained TabPFN v2 on antecedent rainfall, soil moisture and lagged rain for Kaski, and it had the highest nominal F1 (0.33), but I did not ship it because the win came from one year and its training-year AUC was below chance.
-
Best Use of Gemma
- The English message in the app is written by Gemma 3 4B through Ollama on the same laptop, with nothing leaving the device, and it falls back to a template only if it fails checks on the exact percentages, the disclaimer, and a 60-word limit.


Top comments (0)