-
-
Coordinator Dashboard Home page 1
-
Coordinator Recommendation
-
Coordinator Dashboard Home page 2
-
Log data KM
-
Data history KM
-
Kitchen Manager Dashboard Home page 2
-
Kitchen Manager Dashboard Home page 3
-
Kitchen Manager Dashboard Home page 1
-
Policy Maker Recommendation
-
Policy Manker Homepage
-
Recommendation action by KM 1
-
Recommendation action by KM 2
-
Recommendation screen KM
Inspiration
Have you ever gone to bed hungry?
I haven't. Not once. And I think about that a lot now, more than I ever used to.
I grew up in a home where food was just always there. Like, I never even had to think about it. Dal, roti, whatever, it was just on the table. And honestly I'm a little ashamed that it took me so long to realize that most kids don't have that. That for a lot of children, one meal a day is not a sad story, it's just Tuesday.
My family runs a trust called Shanesh. We try to do what we can for communities around us, and one afternoon we visited a government school during lunchtime. That's when everything kind of shifted for me.
The school was part of PM POSHAN, the scheme that gives free midday meals to over 120 million children across 1.2 million schools in India. I knew the numbers before I went. But knowing a number and actually standing in that school are two very different things.
I went thinking I was there to help in some small way. But honestly, the thing that stayed with me happened after the kids had eaten. I saw these huge steel trays of leftover rice and dal just sitting there, going completely cold. And then I watched the kitchen didi start scraping all of it into a bin.
I don't know why but I couldn't just let it go. I walked up and asked her why there was so much left over.
She looked at me and said, "We cook the same amount every single day. No matter how many children actually come."
That sentence just sat in my chest for the longest time.
Because she wasn't being careless or lazy or anything like that. These women wake up at 5am to cook for hundreds of kids. They work so hard. But nobody was giving them the right information. Like, nobody told them that Mondays are always worse because kids just don't come back properly after the weekend. Or that rain kills attendance completely. I don't even know how many times these exact same things must have happened, the same patterns, every single week, and nobody was doing anything with that.
I went home that day and I could not stop thinking about it. Like genuinely could not. The image of that food going into the bin just kept coming back to me.
And then the USAII problem statement dropped. Food Waste Rescue Radar.
I remember reading it and just feeling this weird sense of relief, like oh, this is where that feeling goes. This is what I do with it. It was the first time I felt like I could actually do something instead of just feeling horrible about a problem I didn't know how to fix.
That's why I built CutMyLoss. It started in that kitchen, with that one conversation. And I just really hope it helps. Even a little bit. Because that didi deserves better information, and those kids deserve every single meal that was cooked for them.
What it does
It’s for the kitchen managers in PM POSHAN government schools, the didis, and it helps them see the future a little bit so they don't have to guess how much to cook.
Right now, I've got it working for three demo schools here in Bangalore. When a kitchen manager opens it, she sees a few simple things.
First, it shows her a guess for how much food might get wasted over the next seven days. This isn't just a random number; it's based on all her school's old data. The app learns the patterns, like how Mondays are always a problem, or what happens when it's a half-day.
It also sends an alert if something really weird happens. Like if the waste suddenly spikes for no reason, it will flag it so someone can check what's going on.
But the most important part is the daily suggestion. The app gives a really specific recommendation, something like: "Reduce rice by 12kg today." And it doesn't just say that, it also tells her why. It will show a confidence score, like "we're 85% sure about this," and tell her the predicted saving, like "this will probably save 11kg of rice." I even used an AI to write a simple summary in plain English (or Kannada, eventually) so she can understand the whole situation in just a few seconds.
The key thing for me, the thing that makes it different from just a dashboard, is that the didi is still the boss. The app can't force anyone to do anything. Every recommendation has two buttons: Accept or Dismiss. If she dismisses it, she has to type a quick reason why. Maybe she knows about a school event that the app doesn't, so more kids are coming. That reason she types in is then visible to her coordinator and the admin.
This way, the app is just giving her better information, not giving her orders. Nobody gets bypassed, and an algorithm never gets to overrule a person who is actually there, in the kitchen.
How we built it
So after I had the idea, I had to actually build it. I decided to use Python for the backend because I was most comfortable with it, and I learned a framework called FastAPI to make everything connect.
The hardest part was the data. I found out pretty quickly that PM POSHAN doesn't publish real, daily waste data for schools. So how could I teach my app to see patterns that I couldn't even see myself? This was the biggest roadblock.
I ended up spending a lot of time reading government operational reports and news articles to understand the general trends. Based on that research, I created my own "synthetic" data for three demo schools. I programmed in the patterns I knew were real, like waste always spiking on Mondays after the weekend, or attendance dropping when it rains. I built a 90-day data history for each school so the app had something realistic to learn from.
With the data sorted, I could build the "brain" of the app. I used two machine learning models. The first is called ARIMA, which is good at learning time-series patterns, so it's what predicts the waste for the next week. The second is an "Isolation Forest," which is good at spotting outliers, and that's what sends the alert when a school has a really unusual amount of waste on a certain day.
To turn all the numbers and predictions into a simple sentence for the kitchen manager, I connected the app to the Claude API. It’s the part that writes the plain English summary.
The app itself, the part you see on a phone, I built with React and TypeScript. I had to think about who would be using it, so I designed different views. The didi in the kitchen has the main screen where she can accept or dismiss suggestions. But a coordinator can see a read-only view of all the decisions across her schools, and an admin can see a bigger dashboard.
It's not just a mockup on my computer; I deployed the whole thing live on a service called Railway. So it works like a real app. My goal was to show that the solution works, even without the real data, by making everything as close to the real world as I could.
Challenges we ran into
Getting the Claude API to work correctly took way longer than I expected. The model name kept returning 404 errors and I had to debug through Railway logs to figure out which model version my API key actually had access to. That was really frustrating at 11pm.
The second hard part was designing the Human-in-the-Loop system. It sounds simple but I kept asking myself: what if the kitchen manager disagrees with the AI but does not give a real reason? Or what if she accepts everything without reading? I ended up requiring a minimum length text input for disagreements and adding a decision trail banner so coordinators can see at a glance how many recommendations were actually reviewed versus just clicked through.
Getting the forecasting model to handle schools with very little historical data without confidently predicting the wrong thing was also tricky. I ended up adding the data freshness warning specifically because of this.
Accomplishments that we're proud of
Honestly the thing I am most proud of is that the responsible AI part is not just a checkbox. It is actually built into how the app works.
The AI cannot dismiss a recommendation on its own. The AI cannot accept one either. It surfaces the insight and then it waits. A human kitchen manager who is physically in that kitchen every day makes the call. And when she overrides the AI because she disagrees, she has to explain why in her own words.
I am also really proud that the app works differently for different people. A kitchen manager sees action buttons. A coordinator sees those same cards but in read only mode with the kitchen manager's decisions and reasons shown clearly. The same data, completely different experience depending on who is looking at it.
And it is deployed and actually working, not just a mockup.
What we learned
I learned that building AI responsibly is genuinely harder than building AI that just works.
It is easy to make a model that gives a recommendation. It is much harder to make a system where a human can meaningfully override that recommendation, where that override is logged with a reason, and where someone above them can verify the whole thing happened.
I also learned that the most useful AI is not the one that sounds the most impressive. The most useful AI is the one that a kitchen auntie at a government school in Bangalore can actually act on in 30 seconds before the morning cooking starts.
What's next for CutMyLoss
The obvious next step is connecting to real PM POSHAN data instead of synthetic data. The schema is already aligned with PM POSHAN MIS formats so that is not a huge change technically, just a matter of getting the data access.
I also want to add a mobile-first view specifically for kitchen managers because most of them use phones not laptops. The current app works on mobile but it was not designed for it first.
Longer term I think the coordinator view could become really powerful at district level. If you have 50 schools instead of 3, the ability to see which kitchen managers are consistently overriding AI recommendations and why could help policymakers understand systemic problems, like maybe one district always over-orders because their FCI grain allocation arrives unpredictably.
The infrastructure is there. It just needs real data and real users to make it genuinely useful beyond this hackathon.
Built With
- alembic-**ai-/-apis**-anthropic-claude-api-(claude-sonnet-4-5)
- bcrypt-password-hashing-**dev-tools**-vite
- claude
- lucide
- lucide-react-**auth**-jwt-tokens
- numpy
- numpy-**database**-postgresql
- openai-api-(fallback)-**cloud-/-deployment**-railway-(backend-+-frontend-+-database
- panda
- pandas
- postgresql
- pytest
- python
- railway
- react
- recharts
- scikit-learn
- sql
- sql-**frameworks**-fastapi
- sqlalchemy
- statsmodels
- statsmodels-(arima)
- tailwindcss-**machine-learning**-scikit-learn-(isolation-forest)
- tanstack
- tanstack-query
- typescript
- vite
- windsurf
- zustand
Log in or sign up for Devpost to join the conversation.