RevenueHogdocs
AI and MCP

Query recipes

Ready-made rh_query, rh_reviews, rh_feedback, rh_experiment_results and rh_payouts calls that answer common revenue, churn, ads, review and payout questions.

These calls work as written against the RevenueHog MCP server. Replace app identifiers with your own. Ask your assistant the question in plain language and it builds calls like these; use them directly when scripting or debugging.

Rules of thumb

  • Name only the measures the question needs.
  • A total needs no dimension. A ranking needs orderBy and a small limit. A "why did it change" question needs compareTo: "prior_period".
  • Every measure in a query must allow the chosen dimension. Subscription, flow and store measures group by app only; revenue measures also group by country and product; ad measures also group by campaign.
  • Check rh_meta with topic freshness before quoting a number. Always state the window and that money is USD.

How is my MRR doing?

rh_query {
  "measures": ["mrr", "arr", "activeSubs", "churnRate"],
  "timeRange": "30d",
  "compareTo": "prior_period"
}

MRR trend by week

rh_query {
  "measures": ["mrr", "activeSubs"],
  "dimension": "date",
  "granularity": "week",
  "timeRange": "90d"
}

Which app has the best ROAS?

rh_query {
  "measures": ["roas", "adSpend", "proceeds"],
  "dimension": "app",
  "timeRange": "90d",
  "orderBy": { "measure": "roas", "dir": "desc" },
  "limit": 10
}

Why did revenue drop?

Start by app, then repeat with "dimension": "country" or "product" to localize it. The most negative proceeds_delta names the cause.

rh_query {
  "measures": ["proceeds", "refunds"],
  "dimension": "app",
  "timeRange": "30d",
  "compareTo": "prior_period",
  "orderBy": { "measure": "proceeds", "dir": "asc" },
  "limit": 10
}

How is the trial funnel converting?

rh_query {
  "measures": ["trials", "trialConversion", "newCustomers", "churnRate"],
  "dimension": "app",
  "timeRange": "qtd"
}

Which campaign pays back?

rh_query {
  "measures": ["installs", "cac", "roas", "payback"],
  "dimension": "campaign",
  "timeRange": "90d",
  "filters": [{ "field": "app", "op": "eq", "value": "<app id>" }],
  "orderBy": { "measure": "cac", "dir": "asc" },
  "limit": 15
}

Is revenue concentrated in one country?

rh_query {
  "measures": ["proceeds", "units"],
  "dimension": "country",
  "timeRange": "ytd",
  "orderBy": { "measure": "proceeds", "dir": "desc" },
  "limit": 10
}

A custom date range

rh_query {
  "measures": ["proceeds", "gross"],
  "from": "2026-07-01",
  "to": "2026-09-30"
}

Store funnel for one app

rh_query {
  "measures": ["impressions", "pageViews", "downloads", "redownloads", "deletions", "crashes"],
  "filters": [{ "field": "app", "op": "eq", "value": "<app id>" }],
  "timeRange": "30d",
  "compareTo": "prior_period"
}

What are users saying in reviews?

rh_reviews { "app": "com.example.app", "maxRating": 2, "query": "crash", "hasResponse": false }

What bugs have users reported?

rh_feedback { "kind": "bug", "status": "open", "unread": true }

Is my paywall test a winner?

rh_experiment_results { "status": "running" }
rh_experiment_results { "experimentId": "<experiment id>" }

Read analysis.leadingSignificantVariant and analysis.srmFlagged. Do not call a winner while srmFlagged is true.

When is my next Apple payment?

rh_payouts { "limit": 3 }

Create a key for a feedback form

rh_create_api_key { "name": "Web feedback form", "mode": "live" }

Last updated on

On this page