DesiMetrics

Methodology

This page explains exactly how our calculators work — where the numbers come from, how they are verified, and where the known limits are. Nothing here is hand-waving; each mechanism is how the site is actually built.

1. One data file per DISCOM

Each distribution company's tariff lives in its own structured JSON file (for example src/data/tariffs/tneb.json). Every file records the slab rates, fixed charge, fuel cost adjustment, electricity duty and subsidy schemes, plus four provenance fields:

  • sourceUrl — a link to the State Electricity Regulatory Commission (SERC) tariff order or notification the numbers came from. You can see and click this on every calculator page.
  • effectiveFrom — the date the tariff took effect.
  • lastVerified — the date we last checked the file against its source. This is the "Tariff last verified" date shown in each calculator's footer.
  • verifiedBy — a plain-language verification status. Where a tariff has been sourced from secondary references but not yet cross-checked against the primary order, this field says so, and we treat it as provisional.

2. Every file is schema-validated

Before a tariff can be used, it is validated against a strict Zod schema. The schema enforces that slabs are continuous and correctly ordered, that only the top slab is open-ended, that a fixed charge matches its declared basis, and that the provenance fields are present. A malformed or half-finished tariff simply cannot reach a calculator.

3. A single, tested calculation engine

All bills are computed by one framework-agnostic engine using telescopic slab logic: each slab is charged only for the units that fall inside it, then fuel cost adjustment, fixed charge, electricity duty and any subsidy are applied. The engine is covered by automated unit tests, and the same engine powers the solar and AC calculators so the electricity maths is consistent everywhere.

4. We disclose what we don't model

Some tariff components change every month or follow rules our slab engine cannot represent. Rather than approximate them silently, we state the limitation on the relevant page — for example Maharashtra's wheeling charge and fuel adjustment, West Bengal's monthly MVCA surcharge, or Kerala's switch to a non-telescopic rate above 250 units a month. Estimates are close, not billing-grade, and we say so.

5. Update cadence

Tariffs change when a SERC issues a new order. When that happens we update the DISCOM's data file and its lastVerified date, which automatically flows through to every page and worked example that uses it. See the data sources page for the current source order behind each DISCOM.

Last updated: 29 August 2026