Methodology
What Sanjaya does, where every number comes from, and what the current approximations are. This page is meant to be readable by journalists, researchers, and policy analysts who need to understand the limits before citing anything here.
What Sanjaya is
Sanjaya aggregates public Indian petroleum pricing data into a single daily view. It shows, at each of the four metros, what every rupee of the pump price pays for: refinery transfer price, dealer commission, central excise, and state VAT. It then overlays those components on nine years of history alongside Brent crude so that policy shocks and price stickiness become visible.
Sanjaya is independent. It is not commissioned by, endorsed by, or funded by any oil marketing company, ministry, or government body.
Data sources
- Daily retail selling price (RSP)Dailyhttps://ppac.gov.in/retail-selling-price-rsp-of-petrol-diesel-and-domestic-lpg/rsp-of-petrol-and-diesel-in-metro-cities-since-16-6-2017
PPAC DailyPriceMSHSD_Metro PDF. Four metros, petrol + diesel, full daily history from 16 June 2017.
- Central excise duty componentsWeeklyhttps://ppac.gov.in/prices/central-excise-and-customs-rate-on-major-petroleum-products
PPAC table — Basic Excise Duty, Special Additional Excise Duty, Road and Infrastructure Cess, Agriculture Infrastructure and Development Cess. Historical rates require the PPAC XLS archive (pending backfill).
- State VAT / Sales TaxWeeklyhttps://ppac.gov.in/prices/vat-sales-tax-gst-rates
PPAC table of per-state formulas. 37 states/UTs × petrol + diesel = 74 rows. Raw formula preserved verbatim alongside structured percent + floor + cess components.
- Dealer commissionWeeklyhttps://ppac.gov.in/prices/dealers-distributors-commission-on-petrol-diesel-pds-kerosene-domestic-lpg
Effective-dated history from 1 April 2004. Pre-2013 rates are flat Rs/KL; post-2013 are hybrid formulas of the form 'Rs X/KL + Y% of Product Billable Price'. Both forms are parsed structurally.
- USD/INR reference rateDailyhttps://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
ECB euro foreign-exchange reference rates XML; USD/INR derived from the EUR cross-rates. RBI/FBIL is the authoritative Indian source but is JS-rendered and login-gated for historical; the ECB cross-rate tracks FBIL within one basis point on any given day.
- Brent crudeDailyhttps://fred.stlouisfed.org/series/DCOILBRENTEU
FRED DCOILBRENTEU, daily spot Brent Europe. Proxy for the Indian Basket crude because PPAC gates its Indian Basket historical download behind a login. Brent and Indian Basket typically track within 1-2% at daily cadence.
- Timeline eventsManual
Hand-curated list of nine events: daily-pricing start, two COVID excise hikes, 2021 Diwali cut, Russia/Ukraine invasion, 2022 excise cuts, 2022 windfall tax, 2024 pre-election cut, 2026 Hormuz tensions.
How the waterfall is computed
For each (city, product) on the latest available date, Sanjaya computes the five-component breakdown as follows.
- Retail selling price (RSP) — taken directly from the PPAC daily PDF.
- Central excise total — Basic Excise + SAED + RIC + AIDC from the current-FY PPAC table.
- Dealer commission — the fixed per-kilolitre component from the latest effective PPAC row, converted to paise per litre. The hybrid 'percentage of billable price' portion is not yet modelled in the displayed number; it typically adds 0.05 to 0.10 paise per litre.
- State VAT — derived from the pre-VAT base using the state's percentage component. RSP = base × (1 + percent/100), so base = RSP / (1 + percent/100) and VAT = RSP − base.
- Refinery transfer price — the plug. What is left when you subtract excise, dealer commission, and state VAT from RSP. Any error in the upstream components lands here.
Known approximations
The current build uses the following simplifications. These will be tightened in future releases and are flagged in the data files via the raw_formula field.
- State VAT uses only the percentage component of each formula. States with per-litre additives (Tamil Nadu adds Rs 11.52/L) or a surcharge on VAT (Bihar adds 30 percent) will show slightly under-stated VAT in the waterfall.
- For 'percentage OR Rs X per litre whichever is higher' rules, the percentage is assumed dominant at current price levels. This holds for petrol and diesel across 2022 to 2026 but may not hold at lower underlying prices.
- Crude overlay is Brent, not the authoritative Indian Basket. The two track closely but are not identical.
- Historical excise rates are captured only for the current fiscal year at the moment. Pre-FY26 excise history backfill is pending.
- State VAT history is not yet captured; only the current-rate snapshot is shown. Backfill of effective-dated rows is pending.
Refresh cadence
A GitHub Actions workflow runs daily at 02:30 UTC (08:00 IST) and scrapes the PPAC daily PDF, ECB FX feed, and FRED Brent series. A second workflow runs every Sunday at 03:00 UTC and refreshes the weekly tables: state VAT, central excise, dealer commission. Any new data lands in the repository as a commit, which triggers a Vercel rebuild; the static pages you are viewing are typically updated within 10 minutes of PPAC publication.
How to cite or reuse
The complete dataset is in the GitHub repository under /data. Every file is plain JSON or JSONL, typed in TypeScript, and kept small enough for direct clone. Git history is the audit trail: every scrape is a commit, every row has a scrape timestamp.
If you are a journalist, researcher, or policy analyst: fork the repo, cite Sanjaya as the intermediary, and cite PPAC as the primary source. If you find an error, raise a GitHub issue with the specific row and the expected value.