Data source
The single source of truth feeding every page. Figures are always recomputed from the mandal-level rows.
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)
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.
- 1Edit the shared Google Sheet directly — it is the single source of truth. Open it with the button above.
- 2Keep exactly one row per mandal or municipality (20 detail rows in total). Do not merge, split, or reorder the metric columns.
- 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.
- 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_SOURCEsheetsWhich source feeds the app. "cache" reads the committed JSON cache (default); "sheets" reads live from Google Sheets.
SHEETS_CONNECTORpublicHow 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…HmbwjIThe 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.