Inspiration

This started with my neighbour. She ran a small biriyani cloud kitchen from her house, and honestly the biriyani was really good. People kept ordering. Then gas cylinder prices went up, and at home everyone kept telling her it wasn't worth it anymore, that she must be losing money. So she stopped.

What stayed with me was that nobody actually knew. She neveranalyzed what she earned or spent, so there was no way to check. She might have been making a decent profit the whole time.

When we started asking around, almost every woman we knew who sells food or stitches clothes from home was in the same spot. They know roughly what comes in, but not what's left at the end of the month. Most of the apps out there are in English, need a smartphone, and expect you to type every sale. That's not how these businesses run. So we wanted to build something she could use with a normal phone call, in Malayalam.

What it does

Mitra has two parts: a phone line and an app.

She calls the Mitra number from any phone, even a basic one. A Malayalam voice gives her three options: press 1 to add today's sales, 2 to hear this month's profit, and 3 if she just needs someone to talk to. To add a sale she picks the item, types how many she sold, and presses hash. Mitra repeats it back and tells her the updated profit for the month.

The app shows the same data, and it updates within a few seconds of the call. She can see today's sales, her monthly profit, a chart of the last few months, what's selling best and where most of her money is going. There's a savings goal (ours is an auto rickshaw that slowly fills with colour as she saves), a check for whether a new EMI would still be okay in a bad month, and a simple GST status so she knows how far she is from the registration limit. We also added government schemes with the documents she'd need, and a board where women nearby can buy rice or oil together.

The app also points out small things from her own numbers, like which day of the week she sells the most biriyani, or that chicken has become 7% costlier since the start of the month.

We were careful that no AI does any of the money calculations. Profit is just:

$$ \text{Profit} = \sum (\text{qty} \times \text{price}) - (\text{bills} + \text{purchases}) $$

and that's plain code we can test.

How we built it

The phone side uses Exotel, which gave us an Indian number. In their flow builder, each step of the call points to a small function we wrote on Netlify. When she presses a key, Exotel sends it to our function, which decides what Mitra should say next and saves the sale to Firebase Firestore. We keep track of where each caller is in the menu using the call's ID, and we use that same ID for the sale, so if Exotel sends the same request twice the sale still only counts once.

The app is built in Flutter. It checks Firestore every few seconds, so a sale made on the phone shows up on the screen almost straight away. If the internet drops, it keeps working from the phone's own storage and syncs later. There's also a web version that reads the same data.

The Malayalam voice prompts were generated with a neural text-to-speech voice and then converted to 8 kHz audio, which is what phone lines use. In the app she can also speak her sales. We first try to understand the sentence with our own word lists, and if that fails, she can correct it or type it before anything is saved.

Challenges we ran into

A lot of this came together between midnight and 6 AM, so we ran into plenty.

Our first full test call hung up right after we pressed hash, every time. It took a while to figure out that Exotel reads any reply from our function as "go to this step", so we had to send back an empty reply instead. Getting Malayalam on the call was another one. The fixed sentences are recorded in Malayalam, but anything with a changing number, like the profit, is read out by Exotel in English. We decided that was fine because most people say numbers in English anyway.

We also ran out of free deploys on our hosting in the middle of the night and had to set up a new site from scratch. Then a deploy got blocked because the security scanner thought one of our settings was a leaked password. And the Android build wouldn't download anything on one laptop until we found the Wi-Fi had a broken IPv6 connection.

What we learned

Mostly, that simple wins. A keypad and a familiar voice in her own language will reach far more women than a fancy chatbot. And when it comes to someone's money, the numbers have to be exact, so we kept AI away from the maths completely.

What's next

We want her to be able to just say "innu 12 biriyani poyi" on the call instead of pressing keys. After that, we'd like to run a small pilot with Kudumbashree units, and add reminders for bills and a monthly summary she can show her self-help group or bank.

Built With

Share this project:

Updates

Submission history