Settings

CO

Data source

The single source of truth feeding every page. Figures are always recomputed from the mandal-level rows.

Health 81/100

Google Sheets (live)

Google Sheets (1YCi1C7uIyPAaIkepGVQ0fO2tH9hzBC73mo_W1HmbwjI)

Source kind
Google Sheets (live)
Connector mode
public
Schema version
1.0.0
Spreadsheet ID
1YCi1C7uIyPAaIkepGVQ0fO2tH9hzBC73mo_W1HmbwjI
Last generated
25 Jun 2026, 7:11 pm · 4 min ago
Data health
81/100 · 8 issues · 5/5 reconciled
Units
20 (15 mandals + 5 municipalities)
Constituencies
4
Records (rows)
20 detail rows

Sheet tabs (2)

DISTRICT WISECONSTITUENCY WISE
Open the Google Sheethttps://docs.google.com/spreadsheets/d/1YCi1C7uIyPAaIkepGVQ0fO2tH9hzBC73mo_W1HmbwjI/edit

Update the data

Re-pull the live sheet, or upload a workbook. Both rebuild the cache and recompute every figure.

Refresh from Google Sheets

Pull the latest workbook live from the shared Collector sheet, rebuild every figure from the mandal rows, and recache the dataset.

No credentials needed while the sheet is shared “anyone with the link can view”.

Upload Excel workbook

Have a one-off `.xlsx` instead? Upload it to rebuild and cache the dataset from that file.

Accepts .xlsx / .xls, up to 10 MB.

How the Collector’s office keeps this updated

The dashboard stays current as long as the shared sheet stays clean.

  1. 1Edit the shared Google Sheet directly — it is the single source of truth. Open it with the button above.
  2. 2Keep exactly one row per mandal or municipality (20 detail rows in total). Do not merge, split, or reorder the metric columns.
  3. 3Do not edit subtotal or total rows. The dashboard recomputes every constituency and district figure from the detail rows; subtotal rows are used only to cross-check.
  4. 4Back here, click “Refresh from Google Sheets” above, then reload the page to see the new numbers everywhere.

Configuration

Environment variables that control where data is read from. Current values are shown as badges.

DATA_SOURCEsheets

Which source feeds the app. "cache" reads the committed JSON cache (default); "sheets" reads live from Google Sheets.

SHEETS_CONNECTORpublic

How the sheet is fetched. "public" uses the link-shared XLSX export (no credentials, recommended); "service_account" uses the Sheets API for private sheets.

GOOGLE_SHEETS_SPREADSHEET_ID1YCi1C7u…HmbwjI

The Collector-office spreadsheet that is fetched on refresh.

Set these in a .env.local file. See .env.example in the project root for every supported variable, including the optional service-account credentials (GOOGLE_SERVICE_ACCOUNT_EMAIL, GOOGLE_PRIVATE_KEY) used when the sheet is private.