Code for a Billion 2026 · Livelihood

Know before
you go.

A Hindi and English chat that tells an unorganised worker which schemes fit, what to carry, and where to go — before a day's wage is spent at the wrong counter.

Home BUS Block office Bank branch Service centre Not this counter Bring your passbook Right counter, right papers Eligible: Atal Pension Yojana Go to: your bank branch Carry: passbook, Aadhaar
0trips
₹0wage and bus fare
—at the counter
An illustration, not a recorded journey. ₹315 is the PLFS 2025 average day for a female casual labourer; the ₹60 fare is an example.

One wrong trip costs
a day's wage.

Schemes are published. What a worker can't tell from outside is whether one will actually accept them.

43.99 crpeople in India's unorganised sector, 2019–201
31.48 cralready on e-Shram, with fourteen central schemes mapped to it2
₹455a day, average for a male casual labourer, 20253
₹315a day, average for a female casual labourer, 20253

Registration is not receipt of a benefit. None of these figures measures this project.

What a wasted trip costs.

2
₹60
₹1,030about 2.3 days of wages, gone before any benefit

Each square is one day's wage.

Wages are the PLFS 2025 averages cited above. Trips and fare are yours to set; this is an illustration, not a measurement.

Introduction · 72 seconds

See it in
72 seconds.

The problem, the flow, and why a model never decides.

English captions: press CC in the player.

Explanation · 13 minutes

How I built it.

Every tool, and why it is there.

English captions: press CC in the player.

Ask less.
Decide by rule.

Start with your state. Answer only what matters. Let the rules decide.

01

Choose

Your state — on a map or a list. Then national schemes, your state's, or both.

02

Answer

Only the questions those schemes need. “Don't know” is always allowed.

03

Decide

Plain rule files with cited sources. Same answers, same verdict — no model decides.

04

Walk in

What you get, what it costs, what to carry, and where to go.

Under the hood

Intake: after consent the worker gives her state, chooses national schemes, her state's or both, ticks schemes or all of them, and answers only the questions they need. The answers form a temporary profile in memory; nothing identifies her.
Rule engine: the temporary profile and signed scheme files go into a deterministic rule engine, which returns eligible, ineligible or unknown. No language model decides a verdict.
Privacy: exact answers stay in memory for the chat. With consent, only an event with a random session id, the channel, the state and coarse bands is logged, and only aggregates are reported. Name, phone, Aadhaar, exact income and exact location are never stored.

Unknown is an answer.

Most screeners have two outcomes and quietly default the third. If a question wasn't answered, or a rule hasn't been checked by a person, this one says so — and names what's missing.

EligibleNot eligibleUnknown
Age 18 to 40 Savings account Ever paid income tax Signed rule file apy.toml Eligible Not eligible Unknown

Try the logic

Are you between 18 and 40?

Do you have a savings bank account?

Do you pay, or have you ever paid, income tax?

Atal Pension Yojana

Eligible

Every condition is met. Next: what to carry, and the bank branch.

A simplified illustration of the three-way logic. The bot decides from its signed rule file, not from this page.

Real conversations.
Not mock-ups.

Screenshots from the running bot.

A Telegram result listing two schemes, each with what you get, why you qualify, and where to go — including the premium and what the cover excludes.
The verdict: what you get, why, and where to go.
The WhatsApp bot offering Hindi and English as tappable buttons, then stating it will not ask for a name, phone number or Aadhaar number, and that only counts are kept.
Buttons before typing, and the privacy promise up front.
A WhatsApp recap listing every answer the worker gave — state, age, work, income and more — before the result that is built on them.
Every answer read back before any verdict.
The answer recap showing unanswered facts written as 'you did not say' and 'needs confirmation' rather than being filled in with a default.
“You did not say” survives all the way to the verdict.
The WhatsApp bot offering to make a sheet, then delivering it as a file, saying it has no name and no Aadhaar on it — only what to ask for and what to carry.

The handoff

What they walk away holding.

  • A one-page sheet, built in memory — no copy is kept on the server.
  • No name, no phone, no Aadhaar. Only what to ask for and what to carry.
  • Papers still missing, turned into questions to ask at the centre.

The whole system,
three ways.

The language model sits outside the decision path. It may suggest an occupation for the worker to confirm — nothing else.

The Yojana Sathi core flow: a worker opens the bot, picks a language and consents, gives her state, chooses national schemes, her state's or both, ticks the schemes to check or all of them, and answers only the questions they need. A temporary profile goes to a rule engine over human-signed scheme files, which returns eligible, ineligible or unknown, then the reasons, a checklist, a one-page sheet and where to go. Metrics keep only coarse, consented events.
The core flow, end to end. Tap to open full size.

Twenty-one schemes.
Each signed by a person.

A reviewed set of answers that hold up beats a broad directory of approximate ones.

Showing 20 of 20

National · every state

PM Shram Yogi Maandhan

₹36,000 per year from age 60

Common Service Centre

National Pension Scheme for Traders

₹36,000 per year from age 60

Common Service Centre

Atal Pension Yojana

From ₹12,000 per year at age 60

Bank branch

PM Jeevan Jyoti Bima Yojana

₹2,00,000 life cover

Bank branch

PM Suraksha Bima Yojana

₹2,00,000 accident cover

Bank branch

Ayushman Bharat PM-JAY, 70+

₹5,00,000 hospital cover a year

Ayushman app or hospital

PM Vishwakarma

Toolkit up to ₹15,000, training stipend

Common Service Centre

PM Ujjwala Yojana

In-kind LPG support

Online or an LPG distributor

Jan Dhan bank account

Gateway — free account, RuPay card

Bank branch or Bank Mitra

e-Shram registration

Gateway — no payout of its own

e-Shram portal or a CSC

Indira Gandhi National Old Age Pension

₹2,400 per year central share; ₹6,000 from age 80

Common Service Centre

Indira Gandhi National Widow Pension

₹3,600 per year central share; ₹6,000 from age 80

Common Service Centre

Indira Gandhi National Disability Pension

₹3,600 per year central share; ₹6,000 from age 80

Common Service Centre

State pensions · only in that state

Uttarakhand old-age pension

₹18,000 per year

State portal

Uttarakhand widow pension

₹18,000 per year

State portal

Sikkim old-age pension

₹18,000–₹30,000 per year by age

State pension portal

Sikkim widow pension

₹24,000 per year

State pension portal

Sikkim disability pension

₹24,000 per year

State pension portal

Madhya Pradesh Kalyani pension

₹7,200 per year, widows 18–79

Panchayat or municipal office

Punjab old-age pension

₹18,000 per year, women 58+, men 65+

Panchayat, block or municipal office

National pension figures are the central share. A state pension replaces that figure; the two are never added. Punjab is two rule files, women and men.

What this page
won't claim.

Naming what hasn't been shown yet is part of the product, not a footnote.

No field impact yet

No worker has used this outside maintainer testing. No claim about applications filed, benefits received, or people reached.

Amounts are entitlements

Every rupee figure is what a scheme states it pays — not money anyone has been shown to have received through this tool.

No government endorsement

An independent open-source project. Where a rule here conflicts with a department, the department is right.

Language needs field review

Both flows are tested by the maintainer. Comprehension has not been checked with non-technical workers.

WhatsApp is not general

Telegram and the browser version are live. WhatsApp runs on Meta's test tier until business verification completes.

Built by Avinash Negi

Built with AI.
Checked by hand.

data/schemes/apy.toml code = "APY" annual_value_inr = 12000 source_url = "pfrda.org.in/…" verified_by = "Avinash Negi" no rule reaches a worker unsigned
“Not one threshold, rupee figure or age band in this project was authored by a model.”— from the blog post

I designed Yojana Sathi, checked and signed off every scheme it serves, and deployed and run it myself. An AI coding assistant wrote much of the code and the first drafts of the scheme files under my review; no rule reaches a worker until I have signed it.

Hiring? Résumé (PDF) · Résumé (Word) · avinashnegi.com

Spotted a wrong threshold, a stale amount, or a scheme worth adding? Corrections are the most useful thing anyone can send.