Skip to content

I Made an App for ₹10 Dal Rice and I'd Do It Again

Published: at 08:07 PM

I Made an App for ₹10 Dal Rice and I’d Do It Again



Imagine you’re a migrant worker. You just moved to a new city and you’re hungry. Luckily, you know the Shiv Bhojan scheme exists. But where’s the nearest center? You don’t have a smartphone. You don’t speak English. You don’t know the area.

The Problem: A Meal Scheme That’s Hard to Find

Back in January 2020, Maharashtra’s government launched something cool. They called it the Shiv Bhojan scheme. The idea was to give cheap meals to people who need them. Really cheap. Just ₹10 per plate.

What’s in the plate? Two rotis, some vegetables, dal, and rice. That’s it, a proper meal. The government actually pays ₹50 in cities and ₹35 in villages for each plate. But the person eating it? They only pay ₹10. Coincidentally perfect for a college student suffering from month-end-lack-of-money crisis (me).

Pretty smart, right? Over 900 meal centers opened across Maharashtra. Millions of people got fed. But here’s the thing - nobody could actually find these centers easily.

Great Scheme, Terrible Discoverability

The Real Problem

The government has all the data. They know where every center is. They have health data. They have cleanliness scores. But it is all stuck distributed in spreadsheets and files which arguably aren’t that easy to access even for tech savvy people.

So three big problems popped up:

Problem 1: There was no easy way to find a center. No app. Nothing in Marathi or Hindi - the languages predominantly spoken across Maharashtra.

Problem 2: Nobody knew if a center was in a safe, clean area. What if the water was bad? What if there were disease issues in that district?

Problem 3: The government didn’t know which areas needed more centers. Which districts had the most hungry people? Which areas had the fewest centers?

Enter Trawler

That’s where Trawler comes in. It’s an AI platform built to fix all three problems.

The name “Trawler” refers to a type of fishing vessel that drags a net through the water to catch fish. In the context of the project, it suggests a systematic approach to searching for and identifying the best shivbhojan facilities, akin to how a trawler gathers resources from the sea.

Trawler doesn’t just tell you where the nearest meal center is. It tells you if it’s in a safe area. It tells you which districts need more centers the most. And it talks to you in your language - English, Hindi, or Marathi.

How Does It Work?

Trawler takes four different datasets and mixes them together:

  1. Location data - Where are all the meal centers?
  2. Health data - What’s the health situation in each district? How many kids are malnourished? How many people have diarrhea?
  3. Cleanliness scores - Which cities are clean? Which are dirty?
  4. Population data - How many people live in each area?

To be more specific, these were the datasets used:

  1. kml_shivbhojan_eateries.kml — KML geographic data containing eateries from Shivbhojan
  2. NFHS-5-MH-Maharashtra.csv — National Family Health Survey 5 data for Maharashtra state
  3. ss-2022.csv — Swacch Sarvekshan 2022 data
  4. Census_2011/ — Shapefile dataset with Indian Census 2011 district-level boundaries (contains .shp, .dbf, .shx, .prj and related files)

All of this data is available openly on the internet, most from Indian Government’s own data repository - data.gov.in.

Then it does some smart math. It creates scores.

The Scores That Matter

Food Safety Score: Each meal center gets a score from 0 to 10. How safe is it to eat there? The score looks at the city’s cleanliness, how many people have sanitation, and disease rates. Now you can pick the safest center near you.

Vulnerability Index: Some districts have more hungry people. More malnourished kids. More disease. Trawler calculates a score for each district. Higher score = more people in need.

Coverage Gap Score: This is the important one. It combines two things: “How many hungry people are in this district?” and “How many meal centers are there?”. If a district has lots of hungry people but few centers, it gets a high score. That means it needs more centers.

Priority Tier: Districts get labeled as Critical, High, Moderate, or Low. Critical means “open more centers here NOW.”

The AI Chatbot

Now here’s the cool part. You can just talk to all of this data, that too in your language.

You can say: “Find me a meal center near Bibwewadi.” Trawler figures out where Bibwewadi is. Finds the five safest centers nearby. Done.

You can say: “What’s the health situation in Nashik?” Trawler tells you. Malnutrition rates. Disease rates. Everything.

The chatbot speaks English, Hindi, and Marathi. It knows decent bits about the scheme too. Cost. Operating hours. Who can eat there. Neat stuff.

Why This Matters

Before Trawler, this information was invisible. A social worker couldn’t tell a hungry person which center was safest. An NGO couldn’t figure out which district needed help the most. A journalist couldn’t see where the scheme was failing. All of this was mostly intuition based, nothing to quantify this “gut feeling”.

Now they can. All in one place. All in simple, natural language.

Who Uses It?

A migrant worker: Finds the nearest safe meal center in their language. No forms. No apps to download. Just a chat.

A social worker: Checks the health data for a district before visiting. Understands the malnutrition problem. Gives better advice.

An NGO: Looks at the dashboard. Sees which districts are marked “Critical.” Proposes new centers there. Has data to back it up.

A journalist: Filters the data. Finds districts with zero centers. Writes a story. Holds the government accountable.

A government official: Sorts districts by coverage gap. Opens new centers where they’ll help the most people.

The Math Behind Trawler

Now here’s where it gets interesting. Trawler doesn’t just throw data around randomly. It uses specific formulas to calculate everything. Let me break it down in simple terms.

Step 1: Data Normalisation

First, Trawler takes all the messy data from different sources and puts it on the same scale between 0 and 1. Think of it like converting everything to a common language so you can compare apples to apples.

Swachh Survekshan normalisation:

The Swachh Survekshan (cleanliness survey) score is out of 7500. Trawler converts it to 0-1:

Normalised Score = Swachh Survekshan Score / 7500

Where the result is between 0 and 1. A score of 3750 becomes 0.5, and a score of 7500 becomes 1.0.

NFHS-5 percentage to proportion:

NFHS data comes as percentages. Trawler converts them to 0-1:

Proportion = NFHS Percentage / 100

So if 40% of people have diarrhea, that becomes 0.40.

Step 2: Food Safety Score (0-10)

This is how Trawler rates each meal center for safety. It combines three factors:

Inputs per eatery:

FactorSourceWhat it measures
Cleanliness ScoreSwachh Survekshan 2022How clean is the city? (0-1)
Sanitation AccessNFHS-5What % of households have proper toilets? (0-1)
Diarrhea RateNFHS-5What % of children have diarrhea? (0-1)

The weights:

The formula:

Raw Score = (0.5 × Cleanliness) + (0.3 × Sanitation) + (0.2 × (1 - Diarrhea Rate))

Notice the diarrhea is inverted (1 - Diarrhea Rate) because we want LOWER diarrhea to mean a safer environment.

Convert to 0-10 scale:

Food Safety Score = Raw Score × 10

Example: A center in a clean city (cleanliness 0.8), with good sanitation (0.7), and low diarrhea (0.1):

Raw Score = (0.5 × 0.8) + (0.3 × 0.7) + (0.2 × (1 - 0.1))
Raw Score = 0.4 + 0.21 + 0.18 = 0.79
Food Safety Score = 0.79 × 10 = 7.9 out of 10

Default fallbacks when a district has no data:

This ensures Trawler never breaks, even with incomplete data (tends to be the case with a lot of locally sourced data).

Step 3: Vulnerability Index (0-10)

This measures how much a district needs help. It looks at four health indicators from NFHS-5:

The four indicators:

  1. Lack of sanitation access (% without proper toilets)
  2. Diarrhea prevalence (% of children with diarrhea)
  3. Child stunting (% of children who are malnourished)
  4. Women’s anemia (% of women with anemia)

The formula:

All four indicators are converted to 0-1 scale. Then we average them:

Vulnerability Index = (Indicator 1 + Indicator 2 + Indicator 3 + Indicator 4) / 4

Then multiply by 10 to get a 0-10 score.

Example: A district with:

This is a moderately vulnerable district. Higher scores mean more people in need.

Step 4: Coverage Gap Score (0-10)

This is the big one. It tells you which districts need new meal centers the most. It combines two things:

  1. Vulnerability - How many hungry, sick people are there?
  2. Coverage deficit - How many centers per person?

Inputs per district:

WhatSource
Vulnerability IndexCalculated above (0-10)
Number of CentersCount of Shivbhojan centers in the district
PopulationCensus 2011 data

Step A: Calculate centers per lakh population

Centers per Lakh = (Number of Centers / Population) × 100,000

For example, if a district has 50 centers and 5 million people:

Centers per Lakh = (50 / 5,000,000) × 100,000 = 1 center per lakh

Step B: Calculate coverage deficit

The ideal is 10 centers per lakh. We measure how far we are from that:

Coverage Deficit = 1 - (Centers per Lakh / 10)

But if Centers per Lakh is already 10 or more, the deficit is 0 (good coverage).

Examples:

Step C: Combine vulnerability and coverage

The weights are:

Then multiply by 10 to get a 0-10 score.

Example 1 - Critical District:

Calculation:

Coverage Gap = (0.6 × 7.5/10) + (0.4 × 0.8)
Coverage Gap = 0.45 + 0.32 = 0.77
Coverage Gap Score = 0.77 × 10 = 7.7 → **Critical priority**

Example 2 - Low Priority District:

Calculation:

Coverage Gap = (0.6 × 2.0/10) + (0.4 × 0.2)
Coverage Gap = 0.12 + 0.08 = 0.2
Coverage Gap Score = 0.2 × 10 = 2.0 → **Low priority**

Step 5: Priority Tier

Once Trawler calculates the Coverage Gap Score, it puts districts into buckets:

When you ask Trawler “Find me a center near me,” here’s what it does:

  1. It takes your location (latitude and longitude)
  2. It calculates the real geographic distance to every meal center (using geodesic distance, not straight lines)
  3. It finds all centers within 5 km of you
  4. It sorts them by Food Safety Score (highest first)
  5. It gives you the top 5

So you get the 5 safest centers within walking/biking distance.

Step 7: Summary of All Weights & Thresholds

Here’s a quick reference table of all the numbers Trawler uses:

ParameterValueUsed In
Cleanliness weight50%Food Safety Score
Sanitation weight30%Food Safety Score
Diarrhea weight20%Food Safety Score
Vulnerability weight60%Coverage Gap Score
Coverage weight40%Coverage Gap Score
Ideal centers per lakh10Coverage deficit calculation
Default cleanliness0.5When data is missing
Default sanitation0.5When data is missing
Default diarrhea rate0.1When data is missing
Search radius5.0 kmNearest center search
Critical threshold≥ 7.0Priority tier
High threshold≥ 5.0Priority tier
Moderate threshold≥ 3.0Priority tier

Why These Weights?

You might wonder: why 50% for cleanliness, 30% for sanitation, 20% for diarrhea? Why 60% vulnerability and 40% coverage?

These weights reflect what matters most:

These weights can be adjusted based on policy priorities. If the government decides cleanliness matters less, the weight can be lowered.

What Happens When Data is Missing?

Real-world data is messy. Sometimes a district doesn’t have NFHS data. Sometimes a city wasn’t surveyed by Swachh Survekshan.

Trawler has fallbacks:

This way, Trawler never breaks. It always gives you an answer, even if the data isn’t perfect.

What’s Next?

Trawler is good. But it can get better.

Better population data: Right now, some population numbers are missing. Fix that, and the coverage scores get more accurate.

Keep the AI updated: As the scheme changes, the chatbot needs to know. A simple system to feed it new information would help.

More detailed data: Right now it’s district-level. What if it was neighborhood-level? Even better.

Real-time updates: If a center closes, Trawler should know instantly. Not days later.

Smaller areas: Break it down to talukas, not just districts. More precise planning.

The Bottom Line

Trawler takes government data that was sitting in files. It turns it into something useful. Something human. Something that helps hungry people find food. Helps social workers do their job better. Helps officials make smarter decisions.

You can check out the source code here: https://github.com/AdityaBhattacharya1/trawler


References

[1] Times of India - “What is Shiv Bhojan scheme: Here is all you need to know…” (Jan 27, 2020)

[2] NDTV - “Maharashtra Launches Rs 10 Lunch Plate Scheme On Republic Day” (Jan 27, 2020)

[3] Indian Express - “Maharashtra: Uddhav Thackeray’s Rs 10 meal scheme to be rolled out on January 26” (Jan 5, 2020)

[4] Economic Times - “Rs 10 Shiv Bhojan meal actually costs Rs 50 in cities” (Feb 28, 2020)