1,230,416 recorded grievances appear in this dataset after excluding dates outside 2020–2026. More than half are in just two categories: electrical services and solid-waste complaints. These are records of complaints, not counts of unique broken streetlights, uncollected bins, or confirmed service failures.
Compare the composition of complaints across eight large reporting zones. Colour represents the percentage of each zone’s grievances in a category, not the number of residents affected. Hover for the numerator, denominator and share.
Explore the three largest complaint categories month by month. A rise in recorded grievances may reflect reporting behaviour, administrative changes or changing service conditions; these data alone cannot establish cause. The final year is incomplete.
Which issues come in through which channels? The chart below shows the share of complaints within each reporting channel, for the four biggest channels. It says nothing about how easily residents can reach a given channel, or how satisfied they were with the outcome.
Each dot represents a ward within a zone. Its height shows the share of complaints currently marked Closed, which isn’t the same as confirmed resolution, and its size reflects how many complaints the ward received. To keep the numbers from swinging on small samples, I only included ward-zone combinations with at least 100 records. Treat this as a descriptive comparison rather than a verdict on how well any ward is serving residents.
The main takeaway is that just a handful of everyday service categories account for most of Bengaluru’s grievance records, though how they’re spread out differs by location, reporting channel and time period. These records capture what was reported. They don’t tell us how many problems actually exist, or whether a complaint was resolved to anyone’s satisfaction. A higher complaint count might point to worse conditions, but it might just as easily mean residents in that area are more inclined to report.
Methods and integrity. This analysis starts from the public, compressed CSV, which I loaded and tidied. Before analysis, I dropped 474 records whose dates were either invalid or outside the period of interest, leaving 1,230,416 complaints filed between 2020 and 2026. Some timestamps had been exported in UTC, so I shifted them back to Indian local time to make sure each complaint lands in the right month.
Every chart is built from aggregated counts. Complaint IDs, staff information and free-text remarks never appear in them.
There are a few things to keep in mind when reading the results. The dataset has no dependable closing timestamp, so I haven’t tried to say anything about how quickly complaints were resolved. Zone names include some administrative and older labels, so the heatmap sticks to the eight biggest groups by volume. In the ward comparison, any ward with fewer than 100 records is left out. 2026 is still underway, so its numbers are partial and not directly comparable to a full year. Finally, everything here comes from a single grievance system, so it shouldn’t be treated as a complete picture of complaints across the city.
Data source (applies to all five figures): Bengaluru civic grievances/Sahaaya 2.0 records, distributed in the public repository credited below; source data downloaded for this assignment. Counts are from the cleaned source as of the supplied snapshot.
Baglin, J. (2026a). Accessibility and deception. In Data visualisation: From theory to practice. https://data-visualisation.stem.melbourne/accessibility-and-deception.html
Baglin, J. (2026b). Adding interactivity. In Data visualisation: From theory to practice. https://data-visualisation.stem.melbourne/adding-interactivity.html
Baglin, J. (2026c). Building apps. In Data visualisation: From theory to practice. https://data-visualisation.stem.melbourne/building-apps.html
Baglin, J. (2026d). Dashboards. In Data visualisation: From theory to practice. https://data-visualisation.stem.melbourne/dashboards.html
Baglin, J. (2026e). Design and integrity. In Data visualisation: From theory to practice. https://data-visualisation.stem.melbourne/design-and-integrity.html
Baglin, J. (2026f). Grammar and vocabulary. In Data visualisation: From theory to practice. https://data-visualisation.stem.melbourne/grammar-and-vocabulary.html
Baglin, J. (2026g). Multivariate strategies. In Data visualisation: From theory to practice. https://data-visualisation.stem.melbourne/multivariate-strategies.html
Baglin, J. (2026h). Storytelling with data. In Data visualisation: From theory to practice. https://data-visualisation.stem.melbourne/storytelling-with-data.html
Baglin, J. (2026i). Visual perception and colour. In Data visualisation: From theory to practice. https://data-visualisation.stem.melbourne/visual-perception-and-colour.html
Baglin, J., & Hopf, J. (2026). Spatial data. In Data visualisation: From theory to practice. https://data-visualisation.stem.melbourne/spatial-data.html
Vonter. (n.d.). BBMP citizen grievances [Data set]. GitHub. https://github.com/Vonter/bbmp-citizen-grievances
ChatGPT (OpenAI) was used to help format the references. https://chatgpt.com/share/6ae09ee4-9d98-83ec-bbce-908d5e22cd98