# Methodology

This document is the **anchor target** for every Macro-Pulse card. Each card carries a `methodRef` field in `data.php`; that ref matches an `id` in the headings below. If a card's number cannot be traced through to a section here, it should not be on the dashboard.

The approach is borrowed from the WTO project's source-verification doctrine (`wto/wto_web/content/source-verification-and-truth-types.md`):

1. **Source hierarchy:** primary > official-secondary > reputable-tertiary > weak.
2. **Verification loop:** extract every factual claim → tag verified / unverified / interpretive → verify against primary → soften or drop unsupported claims.
3. **Four-claim diagnosis:** truth / lie / misinformation / disinformation. We aim for "truth" (provisional, source-traceable) and explicitly mark "interpretive" claims as such.

---

## Source-type semantics on the dashboard {#source-types}

Each card's `sourceType` field renders as a coloured pill:

- **Primary** — original document or first-party data feed (e.g. NPCI monthly statistics, Census of India D-series, RBI weekly statistical supplement).
- **Official secondary** — official summaries that point back to primary documents (e.g. MOSPI press notes, NITI Aayog dashboards summarising Census data).
- **Reputable tertiary** — peer-reviewed work, IPCC reports, major IFI databases (IMF WEO, World Bank WDI).
- **Awaiting** — placeholder until 2027 census tables drop. The card exists to mark the slot; the figure is intentionally absent.

A card's source-type can be **upgraded** (e.g. from awaiting → primary once Census D-series lands). Each upgrade is a single-purpose commit to `data.php`.

---

## Per-card methodology

### `delimitation-pressure` {#delimitation-pressure}

- **What we will compute:** projected change in Lok Sabha seat allocation per state if a strict population-proportional formula is applied to post-2027 census numbers, vs the current 543-seat distribution.
- **Inputs:** state population from Census 2027 (when published); current Lok Sabha seat distribution from the Election Commission's Statistical Reports.
- **Why "awaiting":** the current freeze under the 84th Amendment and the political question of whether/how reapportionment proceeds make a hard number premature. We will publish a *scenario* number first (population-proportional, no cap), then a *politically-feasible* number once draft delimitation rules emerge.

### `per-capita-gdp` {#per-capita-gdp}

- **What we compute:** state-level per-capita NSDP in current INR and USD nominal, using a population denominator that switches from 2011-projection to Census-2027 the day the relevant table is released.
- **Inputs:** MOSPI National Accounts (state NSDP); UN Population Division / projections-extended census for the denominator until 2027 lands; World Bank WDI for cross-country USD conversion.
- **Verification cadence:** quarterly with each MOSPI release.

### `aging-index` {#aging-index}

- **What we compute:** weighted average TFR for southern states (TN, KL, KA, AP, TG) and the same for the EAG/northern bloc (UP, BR, MP, RJ, CG, JH, OD, UK, AS), plus the divergence delta.
- **Inputs:** SRS Statistical Report (latest currently 2021); we will switch to NFHS-6 once published, and to Census-2027 enumerated TFR once available.
- **Interpretive notes:** TFR is reported with a one-year lag and a known under-coverage margin in deep-rural districts; we surface that margin.

### `dpi-penetration` {#dpi-penetration}

- **What we compute:** national UPI transaction volume per month and (where data permits) tier-3 / non-metro share. The card on the dashboard currently shows the national figure as the proxy; the rural denominator becomes computable once census household-internet-access tables drop.
- **Inputs:** NPCI monthly UPI statistics; TRAI Indian Telecom Services Performance Indicators; Census-2027 household schedule for the rural denominator.
- **Update cadence:** monthly, on the first business day of the following month.

### `corridor-migration` {#corridor-migration}

- **What we compute:** net annual migration into the DMIC and Chennai-Bengaluru industrial corridors, and (post-census) into specific manufacturing-hub districts.
- **Inputs (placeholder until census):** EPFO net-payroll additions by state of work; mobile-roaming residency proxies (operator-published aggregate data only); NSO PLFS migration micro-data.
- **Inputs (post-census):** Census D-series migration tables (place of last residence × duration of residence × district of enumeration).
- **Why "awaiting":** the proxies are directionally useful but underestimate informal-sector flow by an unknown but material margin.

### `heat-stress` {#heat-stress}

- **What we compute:** projected days per year with wet-bulb temperature > 32°C for each major coastal urban agglomeration, weighted by census population at the city or district level.
- **Inputs:** IPCC AR6 WG1 regional projections (SSP2-4.5 baseline, SSP5-8.5 sensitivity); IMD station-level historical data; WorldPop 100m gridded population for the denominator pre-2027, Census D-series and Town Directory post-2027.
- **Interpretive notes:** the ratchet from "projected days" to "lived days" depends on heat-island effects we don't yet model; that gap is acknowledged on the card via the `tertiary` source-type pill.

---

## What "verified" means on a card

The `verifiedBy` and `verifiedAt` fields on each card mean: **a human (initials in `verifiedBy`) opened every source URL on the date in `verifiedAt`**, confirmed it loads, confirmed the figure shown matches the source, and confirmed the source's own publication date matches the card's `asOf`.

If any of those checks fail, the card is dropped to `status: placeholder` until re-verified. The status flip is itself a commit.
