Historical. This page animates the process ReScore ran from 2026-07-07 to 2026-09-20 (the widening census, DECISIONS #33 and #83). Since 2026-09-20 discovery runs the phased squares plan (DECISIONS #110): a few fixed squares chosen by count, never split. The search simulator's Live preset shows it.
How one search finds its places. Each unit of work is one Google Text Search page over a rectangle: up to 20 places, three pages per rectangle. The circle widens until 50 places worth paying for are inside, aiming each step at 55–60, and a rectangle that hits Google's 60-result cap is quartered so the census stays complete. Pick a density and press play.
view 0.5 km across0 pages · $0.00 at list
place, not yet returnedreturned by a pageeligible, inside the circlerated 3.6★ or lower, droppedkept: the closest 60
Now
Ready
Press play, or step through one action at a time.
0 eligible in the circlestop at 50
round–
radius0.15 km
pages used0 / 30
tiles0
in circle0
eligible0
Rounds
r
km
pages
tiles
in
elig
then
The rules being animated
Unit of search: one Text Search page over a rectangle, up to 20 places, one Enterprise-tier call ($0.035 at list). Google returns at most three pages, 60 places, per rectangle, and picks its most prominent 60, not the nearest.
Rectangle, not circle: Google filters by bounding box, so each round asks for the square around the circle and keeps only what is inside the circle (the corners add about 27% area).
Split at 60: a rectangle that comes back with 60 is treated as truncated and quartered; each quadrant is searched again, to a depth of 2 (16 leaf tiles). Quadrants overlap by 50 m because Google drops places within about 20 m of a rectangle's edge, and the seams pass through the pin.
Two probes: 0.15 km first. If it holds fewer than 50 eligible places, the second census goes to 0.50 km (or the one-point estimate r × √(57 ÷ n) when that is smaller, never past 0.50 km, never less than ×1.5).
Then fit, don't guess: from the last two rounds, count ∝ radius^b (b clamped to 1–3; 2 is uniform density) and solve for the radius that holds 57. Growth per round is bounded to ×1.25–×3; an empty circle jumps ×3; never past 5 km.
Stop when 50 eligible places are inside, or the radius is 5 km, or 30 pages are spent, or 4 rounds have run. Then keep the closest 60.
Four cuts, no change to which places are found: (1) a square already censused is never re-searched — once it cost 4+ pages, the next round searches only the band outside it, as four strips; (2) when the fit predicts the next square holds 55+, its whole-square query is skipped and the four quarters are searched directly; (3) the two-probe fit above, instead of extrapolating from one or two places; (4) hotels, services and sights start their probe at 0.5 km, since a 150 m probe there is always empty.
Eligible means rated above 3.6★ or unrated; lower-rated places are dropped before any review money is spent and do not count toward 55.
What the presets stand for
Dense city core: about 100 places within 150 m, as measured at Tenjin. The probe rectangle already holds more than 60, so round 1 quarters it and usually finishes without widening; if it widens, only the band outside is searched.
Mid-density: about 10 in the probe. The one-point estimate lands under 0.50 km; the second rectangle usually saturates and splits.
Sparse: an empty probe goes straight to the 0.50 km probe; the fit from those two counts sizes the next round, and sparse categories may still run out of rounds before 50.
Very sparse: shows the 5 km cap and the four-round limit; the search accepts whatever is inside.
Historical (before DECISIONS #110, 2026-09-20): the source of truth was functions/src/lib/calibrate.ts (calibrateRadius, fetchRectExhaustive, planNextRadiusKm, ringRects, predictedSquareCount, firstProbeKm, WIDEN, pickClosestWithGate). Places here are synthetic; every threshold is the real one. Each live search records its rounds in search_geo.rounds, with the mode each round used (square, quadrants, ring). Verified 2026-09-07.