Maps Reviews Issue Matrix by Location avatar

Maps Reviews Issue Matrix by Location

Pricing

from $20.00 / 1,000 matrix analyses

Go to Apify Store
Maps Reviews Issue Matrix by Location

Maps Reviews Issue Matrix by Location

Compare issue-topic prevalence across store locations from review datasets you already hold. Aggregate output only.

Pricing

from $20.00 / 1,000 matrix analyses

Rating

0.0

(0)

Developer

Practical AI Lab

Practical AI Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Security

Limited permissions

Share

Google Maps Reviews Analysis by Location | PAL

Compare how often issue topics (waiting time, cleanliness, pricing, order mistakes and more) appear in the reviews of each of your store locations, using review data you already hold. The output is aggregate only: counts, prevalence, confidence intervals and a peer comparison per location and topic.

Published Apify Actor. Runs on the public Store with review data supplied by the customer. The Actor never scrapes Google Maps or obtains reviews automatically. Review sample results before running large datasets.

What it does

Use this Google Maps reviews analysis tool with exported reviews you already have rights to process. Compare waiting time, cleanliness, pricing and other operational issues across multiple business locations. No login, Google Maps scraping or reviewer-identity output.

  • Reads review rows from the reviews input array and/or from datasets in your own Apify account (datasetIds).
  • Matches each review against a keyword lexicon of ten built-in topics plus optional custom topics.
  • Per location and topic it reports mentions, prevalence, a 95% Wilson interval, the pooled prevalence of all other locations, the difference in percentage points, a two-proportion z-test and a Benjamini-Hochberg adjusted q-value across all tested cells.
  • Flags a cell as higher_than_peers or lower_than_peers only when the q-value is below your threshold and the gap is at least your minimum number of points.
  • Stores a summary (top findings, a location by topic prevalence matrix, input statistics, limitations) in the key-value store under OUTPUT.

What it does not do

  • It never contacts Google Maps or any review site. You supply existing data that you are allowed to use.
  • It never stores review text, reviewer names, profile links or any field other than the location name. Those fields are read only for matching and then dropped.

Privacy controls

  • Locations with fewer than minReviewsPerLocation analyzed reviews (floor of 5) are excluded.
  • Cells with 1 to minCellCount - 1 mentions are suppressed (null values, status suppressed_small_cell).
  • Location names appear in the output, so only use names of business locations.

Sample input

{
"reviews": [
{"location": "Harbor Cafe - North", "text": "Long wait at the counter, but the coffee was great.", "stars": 3},
{"location": "Harbor Cafe - North", "text": "Waited 30 minutes for a simple order. Slow service.", "stars": 2},
{"location": "Harbor Cafe - North", "text": "Friendly staff and clean tables.", "stars": 5},
{"location": "Harbor Cafe - North", "text": "Wrong order again and the line was very slow.", "stars": 2},
{"location": "Harbor Cafe - North", "text": "Nice place, a bit pricey.", "stars": 4},
{"location": "Harbor Cafe - South", "text": "Quick service and lovely staff.", "stars": 5},
{"location": "Harbor Cafe - South", "text": "Tables were dirty and the restroom smelled.", "stars": 2},
{"location": "Harbor Cafe - South", "text": "Great coffee, fair price.", "stars": 5},
{"location": "Harbor Cafe - South", "text": "Very noisy inside, hard to talk.", "stars": 3},
{"location": "Harbor Cafe - South", "text": "Dirty floor but fast and polite.", "stars": 3}
],
"topics": ["wait_time", "cleanliness", "price_value", "noise_crowding"],
"minReviewsPerLocation": 5,
"minCellCount": 2
}

The sample only demonstrates the input format. Five reviews per location are far too few for a meaningful comparison.

Input fields

FieldMeaning
reviewsInline array of review objects.
datasetIdsUp to 10 dataset IDs from your own account.
locationField, textField, ratingFieldOverride field names. Common names are tried automatically.
topicsSubset of built-in topics (default all): wait_time, staff_attitude, cleanliness, price_value, product_quality, order_accuracy, noise_crowding, parking_access, safety_hygiene, billing_issues.
customTopicsObject of topic name to keywords. A trailing * matches any word ending.
maxRatingAnalyze only reviews at or below this star rating.
minReviewsPerLocation, minCellCountPrivacy and reliability thresholds.
minDifferencePoints, fdrAlphaFlagging thresholds.
maxReviews, maxLocationsSafety caps (defaults 50000 and 200).

Output

One dataset row per eligible location and topic. Key fields: location, topic, reviewsInLocation, mentionCount, prevalencePct, ciLowPct, ciHighPct, peerPrevalencePct, differencePoints, pValue, qValue, direction, status, sampleNote.

Limitations and sample-size caveats

  • Keyword matching is not sentiment analysis. "No wait at all" still counts as a wait mention. Sarcasm and negation are not handled.
  • The built-in lexicon is English only. Use customTopics for other languages.
  • Prevalence is the share of analyzed reviews that mention a topic, not the share of customers affected. Reviewers are a self-selected group.
  • Statistical tests need adequate samples. As a rough guide, aim for at least 100 reviews per location; below that rows are marked small_sample and intervals are wide.
  • The peer baseline is the pooled set of other eligible locations, so one very large location can dominate it.
  • Tests across many cells can still yield false positives even with false discovery control. Treat flags as leads to investigate.
  • Duplicate reviews in your input are not removed and will inflate counts.

Billing

The code references one event, matrix-analysis, triggered once after output has been stored successfully. Failed or invalid runs fail before any charge. The Actor uses Apify pay-per-event pricing; the latest verified rate on 2026-10-30 is $0.02 per completed analysis, plus a small Actor start event ($0.00005). The live Pricing tab is authoritative for current charges.

Development

Tests are offline and use only the standard library: python -m unittest discover -s tests -t . from the project root.