A review sheet instead of a silent filter
Between the clear yes and the clear no sat thousands of places that a search surfaced but a name couldn’t prove. They went to their own sheet instead of the bin, and every row in the workbook says why it’s there.
The problem
A filter that drops every doubtful result hides its own mistakes.
The fix
Give doubtful firms their own sheet, and record on every row why it’s there.
- 787
- doubtful Mumbai firms kept for review
- 10,555
- possible matches in the national workbook
- 3
- reasons recorded on every row
Every filter makes mistakes. What matters is whether anyone can see them. When I sorted the automation firms that Google Maps returned, the clear yeses and clear noes were easy. The middle was the hard part.
Three piles, not two
Each place lands in one of three tiers:
- Listed: its name proves automation or integration work, or its own website does.
- Possible match: the searches found it, but the proof is thin. Its name has a trade word without an automation word (lighting, gates, panels, CCTV), or it turned up in three or more different automation searches.
- Left out: closed, a training institute, another trade, a shop by Google’s own category, or no sign of automation work at all.
The middle pile is big. In Mumbai, 787 possible matches sat beside 1,176 listed firms. The national workbook has 10,555. A silent filter would have thrown them all away, and with them any real firm whose name undersells it.
Every row says why it’s there
The workbook has a column called “Included because”, with one of three values:
- Name: the business name shows automation or integration work.
- Website text: the firm’s own home page did.
- Search results only: the searches surfaced it and nothing else confirmed it. These rows live on the “Possible matches” sheet, with a region column, because they mix Mumbai and the rest of India.
A reviewer doesn’t have to trust the rules. They can filter to the weakest reason and check those rows first.
Totals that stay honest
The summary sheet holds no typed numbers. Each category total per region is a live count over that region’s sheet, so a category fixed by hand updates the totals. Possible matches are counted on a line of their own and kept out of the totals, so the headline figures only include firms with proof.
Under the totals, short notes say how the list was built: the 13 search terms, how small the squares got, what was left out, and what “Mumbai” means (the metropolitan region, from Mumbai and Thane out to Vasai-Virar and Panvel).
The clean-up nobody sees
A list is only useful if people can filter it, and Google’s address fields fight back:
- Other scripts. Some city and state names came back in Devanagari, Tamil, Kannada and other scripts, and are mapped to English. In the first Mumbai build, 10 rows showed the state in Marathi; the final build has none.
- Districts as cities. “Mumbai Suburban” and “Mumbai City” both become Mumbai.
- Fragments as cities. When the locality is a stray fragment of a few letters, the city is taken from the part of the address just before the state.
- Duplicate listings. One firm can have several listings at one place. Rows that share a normalised name and an address or PIN code collapse into one, keeping the fullest: listed before possible, then with a website, then more reviews.
- Tracking junk. utm, gclid and similar parameters are stripped from website and Maps links.
- Borders. A place lands in the first region whose sweep found it, so a Mumbai firm isn’t counted again in the national sheet, and anything outside India is dropped.
What the sheet revealed
A review sheet also shows where the data is thin. Outside Mumbai, only 9% of possible matches have a website on record (863 of 9,774), against 74% in Mumbai. The website check had nothing to read for most of them. That’s the next thing to fix, not a reason to bin them.
Rules I’d reuse
- Uncertain isn’t wrong. Give it its own sheet.
- Put the reason on every row.
- Make totals formulas, not typed numbers.
- Clean the boring fields, because those are what people filter on.