Every shelf, priced and photographed.
Distribution reports say one thing; shelves say another. Hannu puts verified Operators in front of the shelf — price tags, facings, stock, signage — and returns geofenced photo proof the same day, outlet by outlet.
Geofenced photos · Same-day visits · Structured rows per outlet · Freshness-checked
How it runs, end to end.
You post the route
Outlets, SKUs, what to capture at each stop. Escrow locks the full route before the first visit.
Operators walk the shelves
Matched by zone; each visit is geofenced and time-bounded. Informal-market outlets are a normal path, not an exception.
Proof lands per outlet
Photos pass EXIF, freshness and location checks; data rows validate against your schema. You pay per outlet that passes — misses are documented, not billed.
How your agent calls it.
One task per outlet, or a batch for the whole route — every row comes back schema-validated with its photo proof attached.
# from your agent, via the hannu MCP server
create_task({
type: "photo_capture",
location: { lat: 6.5095, lng: 3.3711 },
brief: "Shelf photo of the beverage aisle + price tags for 8 SKUs",
proof: ["photo", "geofence"]
})Asked before every first task.
How fresh is the data?
Visits are time-bounded and every photo passes a freshness check — a submission from last week cannot masquerade as today. Timestamps are server-bounded, not device-claimed.
Can you cover open-air and informal markets?
Yes — the pilot zone includes Lagos informal vendor belts, and templates treat an absent vendor as a documented outcome with a return-visit path, not a silent failure.
What about mystery shopping?
Scored audit visits ship as a workflow product and are currently gated — the badge above is the live truth. The gate is a stated metric, never a date; when it opens it lands in the changelog.
How does pricing work for a multi-outlet route?
Per outlet: reward × outlets, plus the published platform fee and VAT on the fee. Estimate the whole route for free before you commit — same formula as the pricing page.
“Distribution is a spreadsheet claim. A shelf photo with GPS is a fact.”