01Independent data story · 2026

E20 ka
Chakravyuha

India’s 20% ethanol blending milestone, the sugar shortfall that arrived in the same season, and how much the two have to do with each other.

Astro · React islands · TypeScript 10 routes · 9 charts · 51 sources e20-story.sankettambare.in
02The story

Two facts landed in the same season

India hit 20% ethanol blending five years early. In the same season sugar production fell to a five-year low and retail price jumped from ₹48 to ₹56 a kilo in a single month.

The site exists to ask whether those two facts are connected — and how much. It does not answer the question for you.

+₹7.52Retail sugar, 20 Jul → 20 Aug 2026
+16%World price, Jun → Aug 2026
₹45.40 ₹48.18 ₹55.70 AUG 2024 AUG 2026 TWO YEARS AT ABOUT +3% A YEAR
Back-cast, not observed Ministry series
Ex-mill moved first: ₹47.50 to ₹62.00 in a fortnight, which the Food Secretary called “not based on fundamentals”.
03The story · sugar

Record exporter to importer in four seasons

109.8 0 10 LMT IN 19-20 20-21 21-22 22-23 23-24 24-25 25-26 LMT EXPORTED
The August 2026 duty-free tariff-rate quota was the first import window since 2017.

Red rot in Uttar Pradesh, top borer and waterlogging in Maharashtra cut gross production to 306 LMT against domestic consumption of about 285 — a margin thin enough that a bad month matters.

⚠ 306 LMT (Ministry) vs 343.5 LMT (ISMA) — both still circulating

Nine interventions

Stock verification at mills, a dealer stock limit, a bulk-consumer cap, a duty-free import quota, a customs exemption to give it effect, a processing-deadline relaxation, an early crushing season — five of the nine land between 19 and 21 August.

04The story · ethanol

A decade of nothing, then five years early

E20 E10 · JUN 2022, FIVE MONTHS EARLY 1.5% 2013-14 2018-19 2025-26 NO PUBLISHED SERIES
The dashed stretch is interpolated: our sources publish no annual series for 2015–2018.

For its first decade the programme barely moved — supply was unreliable and administered prices too low to justify building a distillery. Interest-subvention schemes financed 368 new projects, and differential pricing made the B-heavy and juice routes worth taking.

1,200Crore litres procured, ESY 2025-26 (from 38 in 2013-14)
2,019Crore litres of capacity across 478 units — about double what E20 needs

From 1 April 2026, E20 is the sole standard petrol grade (S.O. 860(E), 17 February 2026).

05The story · ethanol

The programme quietly stopped running on sugarcane

19-20 21-22 23-24 25-26 GRAIN OVERTAKES CANE
Grain feedstock Cane feedstock Dashed rule marks 50%

In 2019-20, nine litres in ten came from sugarcane. By ESY 2024-25, grain supplied 69% of the ethanol reaching oil marketing companies — 718 crore litres against 321 from cane.

It relieved pressure on sugar and transferred it onto maize, damaged foodgrain and surplus FCI rice. India became a net maize importer in 2024 for the first time in decades, and 52 LMT of FCI rice went to ethanol in each of the last two supply years.

This is the single most consequential fact about E20 — and the least discussed.
06The story · how they connect

Every tonne of cane can be sugar or fuel. Not both.

The mill’s first decision is chemical, not political: how much sucrose to crystallise, and how much to leave for the distillery next door. Three routes, three very different prices.

C-heavy molasses
115 kg sugar
10.8 L ethanol · nothing forgone
B-heavy molasses
95 kg sugar
21.75 L · ~20 kg forgone
Direct cane juice
no crystal at all
84 L · 115 kg forgone

Per tonne of cane. Every 100 kg of fermentable sugar yields about 60 litres of ethanol.

~32 LMTSugar forgone to ethanol, 2025-26

Which is roughly the size of the shortfall that opened the import window. That is the critics’ central arithmetic — and it is arithmetic, not proof of cause.

The ledger nobody prices

A litre of cane ethanol carries about 3,000 litres of embedded irrigation water. Maize carries about 4,670; FCI rice more than 10,000. Per hectare the ranking reverses — which is why both framings keep appearing in the same argument.

The prototype for this site showed grain as the water-cheap option. On the sourced coefficients, it is not. The sources won.

07The stance

Both columns are sourced. Neither is our conclusion.

The government’s case

MoPNG · DFPD · NITI Aayog
  • E20 arrived five years ahead of target, saving ₹1.97 lakh crore in foreign exchange and substituting 316 lakh tonnes of crude.
  • Ethanol payments reach cane farmers directly — ₹1.66 lakh crore so far — and have cleared long-standing mill arrears.
  • Diversion is capped season by season and lowered when sugar tightens, as it was after the 2023-24 drought.
  • The 2026 price rise reflects disease and weather losses, not blending.

The critics’ case

Independent researchers · consumer groups
  • About 32 LMT of sugar forgone is roughly the size of the shortfall that opened the import window.
  • Cane and rice ethanol carry heavy water footprints in districts already classified over-exploited.
  • Grain ethanol pushed India into maize imports for the first time in decades, and DDGS dragged soybean meal below its own support price.
  • The official lifecycle CO₂ figure excludes land-use change and irrigation pumping.

We take no position on whether E20 was worth it. The job is narrower: put the government’s numbers and its critics’ numbers side by side, mark every place they disagree, and cite all of it. Every chart has a data table. Every figure has a source. Where two credible bodies publish different values, you see a ⚠ and both numbers — nothing is averaged and no side is chosen for the reader.

08The build · features

What the site actually does

  • Three scrollytelling sections. Sugar, ethanol, and how they connect — charts pinned while the argument steps through them, driven by Scrollama.
  • Nine charts, every one with a data table. A toggle under each figure reveals the exact rows behind it, with confidence and source per row.
  • An interactive simulator. Five dials, live outputs, four presets.
  • Conflict flags. Where two credible authorities publish different values, a ⚠ shows both with their sources rather than averaging them.
  • A 51-entry citation ledger. Issuing authority, publication date and Wayback capture date, generated from one JSON file so /sources and SOURCES.md cannot drift apart.
  • Inline glossary. [[Term]] in the copy becomes a link into a slide-out panel — and survives translation.
  • A chart-reading primer. Four conventions explained once: colour, the diagonal hatch on every fuel stream, the conflict marker, and Indian units.
  • Colour-blind safe by construction. Colour never carries information alone; hatch, dash and hollow markers double every encoding.
  • Light and dark, keyboard-navigable, reduced-motion aware — all of it shipped by the chrome without a byte of JavaScript framework.
  • No cookies, no analytics, no third-party scripts. Rendered share cards are generated from the site’s own design tokens.
09The build · features

A toy model you turn yourself

Rather than argue the trade-off, the last section hands over the dials. Move any one and every downstream number recomputes from published coefficients — sugar forgone, closing stock, import need, forex saved, crude substituted, CO₂ avoided, and the water bill.

Blending target20%
Grain share65%
B-heavy route35%
Cane-juice route60%
Sugar production306

Presets

E10E20 · CURRENT E30MAX CANE

What it computes

  • SugarForgone LMT by route, closing stock against the comfortable-stock norm, and the import gap that opens below it
  • FuelForex saved, crude substituted and CO₂ avoided — each carried as a published range, not a point estimate
  • WaterCane, grain and distillery draw in billion litres, weighted by the real feedstock split
  • PriceA direction dial — down, flat, up, up-strong — never a number
This is a toy, not a forecast. Simple arithmetic on published coefficients. Directional only — and the interface says so before you touch it.
10The build · stack

Tech stack

Framework
Astro 7 · static outputReact 19 islands TypeScript 7Node 22
Data
Zod 4 schemascsv-parse tsx build scriptSHA checksums
Charts
Server-rendered SVGChart.js 4 d3-scaled3-shape d3-arrayd3-axisd3-sankey
Interaction
Scrollamalucide-react Vanilla CSS custom propertiesSelf-hosted font subsets
Quality
axe-core + Playwrightnode:test contrast gateJS budget gate interaction walkthroughlink checker Lighthouse CI
Delivery
Cloudflare PagesHash-locked CSP Wayback archiverRendered OG cards

No backend, no database, no runtime API. The whole site is files on a CDN.

11The build · architecture

Data is the source of truth, not the charts

data/*.csv Six CSVs, a coefficient set and the citation ledger. Version-controlled, hand-edited.
build-data.ts Zod validates every row. A bad cell fails the build with the file, row and field named.
src/data/*.json Typed, gitignored, regenerated. Plus checksums and a generated SOURCES.md.
pages & charts Astro renders the chrome and every SVG chart at build time. Three islands hydrate on visibility.

The islands rule

Site chrome and every SVG chart ship zero JavaScript. Only three things hydrate, all on visibility: two Chart.js canvases, the simulator, and the scrollytelling binding. The theme toggle, share button, glossary panel and disclaimer modal were pulled out of React entirely — react-dom alone is 56 KB gzipped.

Gates, not aspirations

Values that are derived rather than published carry a confidence field and are drawn hollow or dashed wherever they appear. Accessibility failures block the build; the performance score warns. Every gate runs in CI.

0.4–3.9 KBInitial JS per route, against a 50 KB budget
40axe-core runs: 10 routes × 2 themes × 2 widths
86Colour-contrast token pairs checked
12Standing

What it claims, and what it doesn’t

Representational and educational use only. Not official data. Not affiliated with any government department, industry body or company named in it.

  • SourcedEvery figure traces to a row in the ledger, with the issuing authority and publication date
  • Archived34 of 51 rows carry a Wayback capture taken after the figure was published — earlier snapshots are not accepted as evidence
  • OpenNine citation gaps are listed on the site rather than papered over. A gap closes only on a primary source; corroboration is never promoted into one
  • DerivedNothing computed is presented as an observation

See it live

e20-story.sankettambare.in

10 routes · 9 charts · 51 sources · data as of 27 August 2026

Where the design and the sources disagreed, the sources won. Where the specification contradicted itself, the user-facing guarantee won. Both are written down.

← Home