DEV Community

Cover image for Keep missing data separate from service opportunities in a Maps export
Tim Zinin
Tim Zinin

Posted on

Keep missing data separate from service opportunities in a Maps export

An agency prospect list can look more promising when its source is less complete. If every missing website field is interpreted as a business without a website, a sparse export manufactures apparent demand. A useful scoring workflow needs to distinguish what the source observed from what the export omitted.

Google Maps Service Opportunity Scorer processes an existing places batch using four disclosed playbook signals. It returns an assessment for each usable place identity, with source-linked evidence, a score and an action. Its strongest feature is the explicit state behind each signal, which makes a ranked research queue auditable.

Inspect a known source row first

The example is a shortened projection of a public place in the installed September snapshot. It retains source field values for a local inspection of the scoring rules. It supplies no current assessment of the institution and makes no claim about its need for agency services.

{
  "items": [
    {
      "placeId": "ChIJPy8Y5kIFdkgRxGSXw4Xjt3s",
      "title": "Natural History Museum",
      "website": "https://www.nhm.ac.uk/",
      "totalScore": 4.6,
      "reviewsCount": 39058,
      "ownerDescription": null,
      "categoryName": "Natural history museum",
      "address": "Cromwell Rd, South Kensington, London SW7 5BD, United Kingdom",
      "url": "https://www.google.com/maps/search/?api=1&query=Natural%20History%20Museum&query_place_id=ChIJPy8Y5kIFdkgRxGSXw4Xjt3s",
      "scrapedAt": "2026-09-22T23:07:38.397Z",
      "permanentlyClosed": false,
      "temporarilyClosed": false
    }
  ],
  "maxInputRows": 100,
  "maxResults": 10
}
Enter fullscreen mode Exit fullscreen mode

The placeId or supported cid keeps duplicate observations tied to the same location. Retain that identity in the receiving worksheet. A title alone can join different branches or businesses that happen to share a name.

Review each signal state

The four checks concern website presence, low rating, owner description and listing sparsity. Their states distinguish absent observations, blank values, missing columns and invalid values. A dataset_missing field does not establish anything about the real business. Route it to source-quality review if the distinction affects your decision.

The default low-rating signal requires at least ten reviews and a totalScore strictly below 3.5. These are configurable playbook choices. Record minimumReviews and lowRatingThreshold with the exported assessments so another reviewer can reproduce the queue.

Preserve the score denominator

Default weights are 40, 30, 15 and 15 for the four signals. Custom weights change both the raw points and the configured total. Preserve opportunityScoreNormalized and weightTotal alongside the raw score to explain how the result was scaled.

Confidence describes how many signal states resolved. It is not a conversion probability. A low score with unresolved source fields deserves a different interpretation from a fully observed healthy listing. Keep partial and the signal-state columns visible in the review table rather than hiding them behind a colored score cell.

Give closed places a distinct route

The contract handles source-marked temporary or permanent closure separately and excludes those records from the outreach queue. Keep the closure evidence so a reviewer can see why a recognizable place did not enter the normal prioritization flow.

Before acting on any score, inspect the current public listing and decide whether the observed signal is relevant to the service offered. No message is sent by this transformation. The next action is an internal research recommendation whose suitability still depends on the team's own verified context.

Retain source coverage notices from the run summary. A row cap, a missing field or conflicting duplicate observations can change which places were assessable. An explainable queue should disclose that scope and keep accepted snapshots, rather than presenting one processed batch as a complete inventory of local demand.

Price and verification scope

Listing pricing read on 23 October 2026 is $0.012 per result-found event on the FREE tier. The documented unit is: One useful business assessment delivered with source evidence and a recommended next step. Source errors, invalid rows and budget diagnostics request no result event. Other platform tiers have their own rates. This pricing record has no separate start event. A usable result from an illustrative input can still be billable; inspect the applicable listing and run spending limit before executing it. maxResults is an output cap, separate from the platform's Max total charge option.

This article uses the installed source contract from build 0.1.5 (TSS2dcFhiFy9Nag0E). The example is a shortened historical source projection, with local pure-transform validation only. No new Apify cloud build or run was started for this article. Local output does not establish cloud delivery, customer acceptance or commercial results.

Inspect the Actor's current input and pricing.

AI-assisted draft; independent technical and cover review is required before publication.

Top comments (0)