Hunch

Analyze app store reviews in Google Sheets

Updated · Edoardo Panichi, maker of Hunch

=HUNCHPICK(text, options) reads an app store review and returns bug report, feature request, praise, or pricing complaint. =HUNCHSCORE(text, question, levels) then rates how severe the problem is, none to critical, so the worst bugs sort to the top of the sheet instead of the top of the app store page.

A star rating alone does not triage anything

Two one-star reviews on the same day can be a data-losing crash and a complaint about a price increase, and they need to reach two different people by two different deadlines. Filtering by star rating gives you both in one pile; a review export with no category column leaves someone reading every row to sort that out by hand.

Category

=HUNCHPICK(A2:A500, "bug report: something is broken or crashes|feature request: wants something new or different|praise: happy, nothing needed|pricing complaint: cost, billing, or refund issue|other")

In Excel: =HUNCH.PICK(A2:A500, "bug report: something is broken or crashes|feature request: wants something new or different|praise: happy, nothing needed|pricing complaint: cost, billing, or refund issue|other")

pricing complaint is described as a cost, billing, or refund issue so it does not swallow every review that mentions a broken payment screen, that stays a bug report unless the review is about the price itself. Full syntax is on the HUNCHPICK reference.

Severity

=HUNCHSCORE(A2:A500, "How severe is the problem described in this review, if any?", "none|minor|serious|critical")

In Excel: =HUNCH.SCORE(A2:A500, "How severe is the problem described in this review, if any?", "none|minor|serious|critical")

No fourth argument here, so this returns the weighted position, 0 (none) to 3 (critical), which is what you sort a triage list on. Add "label" as a fourth argument for a second column with the word instead of the number, for a roster a human reads. Details are on the HUNCHSCORE reference.

Real outputs

Eight reviews pulled from an app store export, category, severity number, and severity label side by side.

RowABCD
1ReviewCategorySeveritySeverity label
2Crashes every time I try to upload a photo. Lost an hour of work. Please fix.bug report2.49serious
3Would be great if you added dark mode.feature request0.32none
4Been using this for 2 years, never had an issue. Love it.praise0.00none
5Subscription price doubled overnight with no warning. Cancelling.pricing complaint2.11serious
6App freezes on the checkout screen, could not complete my order.bug report2.54critical
7Great app, wish there was a way to export to Excel.feature request0.89minor
85 stars, does exactly what it says.praise0.00none
9Charged twice for the premium upgrade, still waiting on a refund after a week.pricing complaint1.94serious

Pricing complaints score as severe as bugs here: the doubled subscription price comes back 2.11, serious, and the double charge 1.94, both close to the checkout-freeze bug at 2.54, critical, because losing money without warning reads as seriously as losing an hour of work. The two feature requests split further apart than their shared category suggests, dark mode at 0.32 and Excel export at 0.89, both none to minor, but neither zero: a request phrased as a real want still registers above a review with no problem in it at all.

Reviews that mix two things

Six reviews where praise, a bug, and a feature request show up in the same three sentences.

RowABC
1ReviewCategorySeverity
2Love the design but it crashed twice this week and I lost my draft both times.bug report2.29
3This used to be free, now you want $10 a month for basic features, ridiculous.pricing complaint1.20
4Please add a widget for the home screen.feature request0.12
5Will not open since the last update, stuck on the splash screen.bug report2.90
6It is fine.praise0.00
7Been asking for CSV export for two years, still nothing, but otherwise a solid app.feature request1.72

The unusable app, stuck on the splash screen since an update, is the most severe review across both grids, 2.9 out of a possible 3, ahead of the checkout-freeze bug above. The one worth a second look is the two-year feature request: 1.72, closer to serious than minor, well above the one-line widget request at 0.12. Nothing is technically broken in either review, but the severity question asks how much of a problem this is, and a request repeated for two years with no answer reads as a bigger problem than a first-time ask, a fair reading of the word severe even outside a bug.

Triage this sprint

=SORT(FILTER(A2:D500, B2:B500="bug report"), 3, FALSE)
=COUNTIFS(B2:B500, "pricing complaint")

The first pulls every bug report, most severe first, using the numeric column so the order is correct; sorting on the label column instead would put them in alphabetical order, which is not the same thing. The second is a one-line count for the billing team.

=COUNTIFS(B2:B500, "feature request")

Feature requests rarely need a severity sort, a plain count by week tells you whether the same request keeps coming back, which is the signal worth taking to a roadmap review.

Check that the none severity bucket lands mostly on praise reviews. If serious problems keep landing there too, tighten the severity question to mention "only if something is wrong with the app".

Limits

Copy the template to try both formulas on your own review export. The review tagging guide covers a similar topic-and-sentiment pattern for product reviews generally, and the support ticket triage guide uses the same category-plus-severity shape on a helpdesk export.

Questions

Does it read the star rating?
No, text only. Keep the rating column from your export and combine it with FILTER or QUERY once category and severity exist.
Does this work for both the App Store and Google Play?
Yes, any export with the review text in a column, from App Store Connect, Google Play Console, or an aggregator like Appbot or Sensor Tower.
Can severity come back high on a review marked praise?
It should not, by design. If you see it happen, read a few of those rows and tighten the severity question to make clear it should stay at none when nothing is wrong.
How do I get the worst bugs to the top of the sheet?
Sort on the plain numeric severity column, the one with no "label" argument. Keep a second column with "label" next to it so a human reads a word instead of a number.
Should I reply to reviews from inside the sheet?
The sheet is for triage, not for replying. Use the category and severity columns to decide what needs an answer today, then post the reply itself from App Store Connect or the Play Console.

Run it on your own column

Copy the template (or use the Excel add-in), paste your key, point the formula at your data. Every formula here has its Excel spelling underneath. 100 rows free to start, then $29 for 5,000 rows. Credits never expire and there is no subscription.

Reference: HUNCHPICK · HUNCHSCORE

More guides