● Open sourceGeo-Grid Local Rank Tracking

falconer.

The $139/month tool, open source

Local Falcon charges $139 a month to sample Google Maps rankings from a grid around a business. Semrush and BrightLocal sell a version. There was no open-source one.

TypeScriptVincentyProvider-pluggable37 tests
Language TypeScriptTests 37License MIT
falconer — scan
$ falconer scan "pressure washing"
› 13×13 grid @ 500m
✓ 60 of 169 calls
↳ ATRP 6.40 vs 6.33 true
✓ 64% cheaper
01 The problem

A rank grid is a claim about physical space.

"We rank top three within two miles of the shop." If the grid is built by stepping latitude and longitude in fixed decimal amounts, that claim is wrong everywhere except the equator — a degree of longitude is 111km at the equator and 54km at 61°N.

02 The hard part

Where the work actually was.

Every grid point is a paid SERP call, so the interesting question is which subset to measure. The plan was to chase gradient: sample where the rank surface changes fastest, because that is where a competitor's radius of dominance ends. Measured, that was 7% worse than plain coverage — and saying so is more useful than shipping it on and hoping nobody checks.

1

Geodesic grids

Vincenty's direct solution on WGS84. Round-trips to a centimetre at any latitude.

2

Three layouts

Square, circular (a square grid's corner over-reaches by 1.41×), and hex.

3

Maximin sampling

"Every Nth" is uniform in index space and lays down bands. Farthest-point is uniform on the ground.

4

The real metrics

ARP, ATRP, SoLV, coverage — with every delta oriented so positive always means improvement.

5

Listing identity

place_id, then cid, then normalised name with location as a tiebreak, so two branches do not merge.

6

Self-contained SVG

Interpolated points are dashed and dimmed. A client can see which circles are measurements.

03 Measured

What it actually does.

From examples/benchmark.ts, against a synthetic market where the true rank at every point is free to evaluate:

against a full 169-call scan 24 calls 86% cheaper within 0.81 ranks 36 calls 79% cheaper within 0.60 ranks 48 calls 72% cheaper within 0.52 ranks 60 calls 64% cheaper within 0.40 ranks the naive grid, by latitude Miami a "1 mile" step is 0.90 miles Charlotte 0.82 miles Anchorage 0.48 miles
04 Engineering

How it's built.

GeodesyVincenty direct + inverse, WGS84
Samplinggreedy farthest-point (maximin)
SurfaceIDW + empirical semivariogram
ProvidersDataForSEO reference adapter
SafetywithBudget() hard call ceiling
Tests37, offline synthetic market
05 Honestly

What it doesn't do.

It does not scrape Google. The SERP comes from whichever provider you already pay for, because a scraper breaks when markup changes and then silently returns wrong data — worse than none, since a rank report nobody can trust still gets shown to a client. No scheduling, no storage, no UI beyond the SVG.

Want a closer look?

The README goes deeper, and the tests are the honest documentation. Happy to walk through the trade-offs.