Competitors
Share of voice measured as a percentage of grid points, not as a hunch. The same scan that draws your heatmap already recorded everyone else who appeared.
A competitor who beats you at one point may be losing everywhere else, and the one you never think about may own three quarters of your service area. A list of names sorted by a single position hides both.
Because every grid point is already a separate map request, the competitor data costs nothing extra. It is sitting in the response you already paid for.
%
of grid points where each competitor appears, counted from the scan you already ran
The percentage of your grid points where each business appears in the pack. One number that says who owns the area, and it moves when you do the work.
The profile signals behind the ranking, pulled with the same scan, so you can tell whether you are losing on proximity or on reputation.
Competitors are identified by place_id, not by a name substring. When a match falls back to name, the row is flagged rather than quietly guessed.
A change in grid share is the signal worth a message. Position noise on a single point is not.
Under the hood
Every point in the grid returns the full local pack for that coordinate. Rankfinity stores each result and counts appearances, so a competitor’s share is a division, not a model.
Name matching is the quiet killer of accuracy in local tools. Delta Plumbing happily matches Delta Plumbing & Heating, Delta Drain and New Delta Plumbers. Comparing on place_id or cid means either it is them or it is not. There is no probably.
Every module reads the same project. Add a keyword in one and it appears in the others immediately.
The modules are working and access is opening soon. Join the early-access list and you go first when it opens. No calls, no credit card.