• Projects
  • Service
  • About
  • branding.bz
  • Podcast
  • Tips
  • FAQ
  • Recruit
  • Download
  • Contact
  • branding.bz(ブランド構築SaaS)
  • DESIGN NOW(デザインメディア)
  • X
  • LinkedIn
  • Spotify
  • Facebook

213-0011 神奈川県川崎市高津区久本3-6-7-303

© 2026 ID INC. All rights reserved

claude-skills/スキル
SKILLOfficialdevelopment

revenuecat-charts

プラグイン
revenuecat
ソース
GitHub で見る ↗
説明

次のような場合に使用: ユーザーがRevenueCat(サブスクリプション管理プラットフォーム)のデータ、分析情報、グラフ、KPI(主要業績評価指標)について質問した場合。具体的には、get-chart-options-schema(グラフ設定の仕様取得)と get-chart-data(グラフデータ取得)を使ってグラフを検索したり、サブスクリプション関連の数値指標を解釈したり、ダッシュボード上のグラフリンクを共有する際に活用します。

原文を表示

Use when the user asks about RevenueCat data, analytics, charts, or KPIs — querying charts with get-chart-options-schema and get-chart-data, interpreting subscription metrics, or sharing dashboard chart links.

ユースケース
  • RevenueCatのデータについて質問された
  • サブスクリプション関連の数値指標を解釈する
  • グラフを検索・取得する
  • ダッシュボード上のグラフリンクを共有する
本文(日本語訳)

RevenueCatチャートへのアクセス

RevenueCat MCPの以下の2つのツールを使用します:

  • get-chart-options-schema: 日付解像度、セグメント、フィルター、その他のセレクターを含む、各チャートで利用可能なオプションを理解する場合に使用
  • get-chart-data: チャートのデータを取得する場合に使用

一般的に、コンテキストの過負荷を避けるために、定義された期間とより大きな解像度から始めて、その後絞り込んでいきます。

メトリクスの解釈

サブスクリプションアプリは4つの要因によって駆動されます:

  • Acquisition(獲得) - アプリに到着する新規顧客の数
  • Conversion(コンバージョン) - それらの顧客がトライアルまたは有料プランに転換する数
  • Retention(リテンション) - 顧客がどの程度保持されるか
  • Reactivation(再アクティベーション) - 既存ユーザーをどのように呼び戻すか

アプリの純収益変動は、これらの要因の組み合わせの結果となります。アドバイスを提供する際は、常にベンチマークデータを使用して、問題の診断が正しいことを確認してください。

一般的なガイドライン

  • データツール使用時、日付範囲は包括的です(start_dateとend_dateは範囲に含まれます)。「過去N日間」のデータを求められる場合、これを考慮してください(end_dateを今日として、start_dateは今日のN-1日前に設定)
  • RevenueCatチャートへのリンクを、有用な場合に提供してください(下記の「ダッシュボードURL形式」セクションを参照)。フィルター、セグメント、日付範囲などを含む具体的なリンクを提供してください。例えば、過去3ヶ月の収益を求められた場合、過去3ヶ月のカスタム日付範囲とrevenue_typeセレクターがproceedsに設定された収益チャートにリンクしてください。一般的な収益チャートへのリンクは提供しないでください

収益

  • 追加の指定なしで一般的な収益数を求められた場合、デフォルトでは総収益(税金とストア手数料を含む収益)を使用し、その旨を明記してください

獲得

  • 「新規顧客」チャートを使用して、アプリがどの程度のトップファネルを駆動しているかを理解します
  • 「新規顧客」チャートを国別またはApple Ads次元でセグメント化することは、獲得情報を提供するのに役立ちます
    • RevenueCatのApple Ads統合により、キャンペーン、広告グループ、キーワードなどのアトリビューション次元情報が設定されます
    • 開発者は、予約済みの顧客属性を使用して、顧客単位でこれらのアトリビューション次元を手動で設定することもできます
  • 明示的なアトリビューションフィルターからのゼロ結果を、より広いチャネルがゼロユーザーまたはゼロアクティビティを持つことの証拠として扱わないでください。例えば、attribution_source = Organicは、その値で明示的にタグ付けされたユーザーのみを意味し、タグなしユーザーまたはすべてのオーガニック/非有料ユーザーを含みません
  • アトリビューションデータが不足しているまたは欠落している場合は、それを明確に述べてください。特定のチャネルからユーザーが来たと仮定するのではなく、「未アトリビューション」または「明示的にタグ付けされていない」と言及してください

コンバージョン

コンバージョンの定義は、アプリが使用しているモデルによって異なります。トライアルに転換してから、サブスクリプションに転換する場合もあれば、ユーザーをサブスクリプションに直接送信する場合もあります。

  • 「初期コンバージョン」チャートを使用して、トライアルまたはサブスクリプションが開始されている数を確認します
  • 「新規トライアル」チャートと比較することで、無料トライアルを使用しているかどうかをさらに判断できます
  • 「トライアルコンバージョン率」チャートは、トライアルコンバージョンのパフォーマンスだけを理解するのに役立つチャートです

リテンション

  • 「Churn(チャーン)」チャートは、各期間に失われるアクティブサブスクライバーベースの割合を示します。異なる期間のブレンドであるため、解釈またはベンチマークが困難な場合があります
  • 異なるプロダクトの長期リテンションを理解したい場合は、「サブスクリプションリテンション」チャートを確認してください

再アクティベーション

  • 再アクティベーションを理解する唯一の実際的な方法は、「MRRムーブメント」チャートと「再サブスクリプションMRR」を確認することです

アナリティクス比較

  • 類似したものを比較してください。獲得コホートまたはセグメントを分析する際、方向性のあるクレームを述べる前に、同じメトリック、チャート、日付範囲、コンバージョンウィンドウ、およびコホート定義を使用して、全体的なベースラインと比較してください
  • 「{セグメント}ユーザーはどのようにしているか」などのオープンエンドの質問については、セグメントのみのメトリックで止まらないでください。要求されたセグメントと、重要なコンバージョンまたは収益品質メトリックの全体的/フィルターなしベースラインを取得し、そのベースラインと比較してパフォーマンスを判断してください。ベースラインと比較せずに、セグメントを「良好」「パフォーマンス不足」などと評価しないでください
  • フィルターされた新規顧客コホートからの収益またはコンバージョンを、すべてのコホートと更新からの合計アプリ収益と比較しないでください。一致するベースラインを取得できない場合は、そう述べて方向性のあるパフォーマンスクレームを避けてください

ダッシュボードURL形式

フィルターを保持したRevenueCatダッシュボードチャートへの共有可能なリンクを生成します。

重要: この正確な構造を使用してください:

https://app.revenuecat.com/projects/{project_id}/charts/{chart_name}?range={range_value}
  • {project_id} — 短い16進ID(例: 56965ae1)。完全なproj56965ae1ではありません
  • {chart_name} — revenue、churn、mrrなどのチャート名
  • プロジェクトIDはパスに置きます。クエリパラメーターではありません

正しい例:

https://app.revenuecat.com/projects/56965ae1/charts/revenue?range=Last+90+days%3A2025-11-16%3A2026-02-13

間違い — 使用しないでください:

https://app.revenuecat.com/charts/revenue?project=proj56965ae1&chart_start=...&chart_end=...

クエリパラメーター

日付範囲(range)— 必須

rangeパラメーターは日付範囲を制御します。形式: {preset}:{start_date}:{end_date}。start_dateとend_dateはYYYY-MM-DD形式です。任意の日付範囲の場合はCustomをプリセットとして使用してください。

この形式を必ず使用してください — start_date、end_date、chart_start、chart_endパラメーターは使用しないでください。注: パーツ間の:はURL エンコードとして%3Aにする必要があります。プリセット名のスペースは+になります。

例: range=Custom%3A2025-01-01%3A2025-12-31

解像度(resolution)

値 意味
0 日単位の粒度
1 週単位の粒度
2 月単位の粒度
3 四半期の粒度
4 年単位の粒度

セグメント(segment)

データを分類する次元。get-chart-dataリクエストを作成する際に使用していた正確な値を使用してください。

  • country — 国別
  • store — App Storeなどのアプリストア別
  • product_id — プロダクト識別子別
  • platform — iOS、Androidなどのプラットフォーム別
  • offering_id — オファリング別

フィルター

フィルターは個別のクエリfilterパラメーターとして渡され、内容は{dimension}%3A%3D%3A{value}です。get-chart-dataリクエストで使用した次元名を使用してください。

次元 例
country filter=country%3A%3D%3AUS
store filter=store%3A%3D%3Aapp_store
product filter=product_id%3A%3D%3Aprodbb68905d98
platform filter=platform%3A%3D%3AiOS

複数フィルターを使用するには、同じ次元用であるか複数の次元用であるかに関わらず、複数のfilterクエリパラメーターを含めてください。同じ次元に複数のフィルターを渡すとOR操作になり、異なる次元のフィルターを渡すとAND操作になります。

チャート固有のセレクター

一部のチャートには特別なセレクターがあります:

コンバージョン/リテンションチャート:

  • customer_lifetime — 例: 30_days、60_days、90_days
  • conversion_timeframe — 例: 7_days、14_days、30_days

リンクの構築

ダッシュボードリンクを生成するには:

  1. ベースで開始: https://app.revenuecat.com/projects/{project_id}/charts/{chart_name}
  2. rangeパラメーターを日付範囲とともに追加
  3. フィルターをfilterクエリパラメーターとして追加
  4. セグメント化する場合はsegmentを追加
  5. 必要に応じてチャート固有のセレクターを追加
  6. すべての値をURL エンコード(スペース→+、コロン→%3Aなど)

APIからダッシュボードパラメーターへのマッピング

APIパラメーターをダッシュボードURLに変換する場合:

APIパラメーター ダッシュボードパラメーター
start_date + end_date range=Custom%3A{start}%3A{end}(Customプリセットを使用)
segment segment
filters(JSON配列) 個別のfilterクエリパラメーター
selectors(JSONオブジェクト) 個別のクエリパラメーター

例: リンクの構築

ユーザーが求めるもの: 「過去90日間の収益チャート、国別にセグメント化、USとドイツにフィルター」

日付を計算: 今日が2026-02-13の場合、90日前は2025-11-16です。

https://app.revenuecat.com/projects/56965ae1/charts/revenue?range=Last+90+days%3A2025-11-16%3A2026-02-13&segment=country&filter=country%3A%3D%3AUS&filter=country%3A%3D%3ADE

ユーザーが求めるもの: 「2025年8月から現在までのチャーンチャート」

任意の日付範囲にはCustomプリセットを使用:

https://app.revenuecat.com/projects/56965ae1/charts/churn?range=Custom%3A2025-08-01%3A2026-02-13

プロジェクトIDの取得

プロジェクトIDはlist_projectsツール経由で取得でき、すべてのプロジェクトとそのIDをリストします。

  • ツールはprojで始まるIDを返します。例えばproj56965ae1
  • ダッシュボードURLの場合はprojプリフィックスを削除してください — パスには56965ae1のみを使用
原文(English)を表示

Accessing RevenueCat charts

When querying a RevenueCat chart, follow this workflow:

  1. Use get-chart-options-schema to discover a chart's available options.
  2. Use get-chart-data with the right options to retrieve the chart data.
  3. Analyze the data, using scripts for any non-trivial arithmetic.

In general, to avoid clogging the context, start with defined timeframes and larger resolution, then narrow down.

1. Discover chart options with get-chart-options-schema

  • Treat get-chart-options-schema as the source of truth for each chart before calling get-chart-data. It returns the chart's supported resolutions, filters, segments, and user_selectors. Always call this tool with "realtime": true. Later get-chart-data calls must use string IDs exactly as returned here.
  • filters are the dimensions you may later constrain in get-chart-data.
    • Each filter has:
      • an id to later use as the filter name.
      • a value_mode that tells you how to choose valid values:
        • inline_enum means you must use the id of one of the returned options. Resolve user-supplied names first with the matching list tool, such as list-products, list-offerings, list-apps, etc.
        • inferred_standard means use the standard code from value_source such as an ISO country code.
        • dynamic means values come from observed project data and must match exactly.
    • Do not pass display names, store product identifiers, bundle IDs, or guessed values unless the schema says they are valid values.
  • segments are the dimensions you may later group by in get-chart-data using segment.
    • A segment entry directly gives the dimension id to use. It does not list segment values because the chart will group by it and show all values in the output.
    • Filters and segments are separate per-chart lists, so never assume a filterable dimension is segmentable. For example, conversion_to_paying may support product_id and offering_identifier as filters but not as segments.
  • user_selectors are chart-specific switches that change what metric or window the chart returns. Each selector is keyed by the selector ID to pass in get-chart-data's selectors JSON object and usually includes allowed option IDs plus a default. For example, the revenue chart may use revenue_type (revenue, revenue_net_of_taxes, proceeds), while conversion charts may use conversion_timeframe and default to 7_days. State non-default selector choices when presenting results.
  • resolutions list the supported time granularity and their string IDs for get-chart-data. You must always pass one of these resolution IDs (such as "0" for day or "2" for month) when later calling get-chart-data.

2. Retrieve chart data with get-chart-data

Calling get-chart-data

  • Always set "realtime": true and specify start date, end date and resolution ID.
  • Always follow the guidelines from a prior get-chart-options-schema for that chart.
  • Consider rate limits: don't query too many charts at once.
  • Date ranges are inclusive (start_date and end_date are included in the range). When asked for data for the "last N days", take that into account (use today as end date, start date is (N-1) days before today).
  • Use available filters to constrain the output. They are a JSON-encoded array of {"name": "<filter id>", "values": ["<value id>", ...]}.
    • Values within one entry are ORed; separate entries are ANDed. Example: App Store revenue in the US or the UK: "[{\"name\": \"store\", \"values\": [\"app_store\"]}, {\"name\": \"country\", \"values\": [\"US\", \"GB\"]}]".
    • Use at most one entry per filter name: a repeated name silently replaces the earlier entry (it does not combine with it). Filter values must not contain commas.
  • Use the available selectors for configuring the chart. They are a JSON-encoded object mapping selector IDs to option IDs, e.g. "{\"revenue_type\": \"proceeds\"}". Omitted selectors use their defaults; the response echoes the applied values in user_selectors.
  • Use segment to group the output by some of the segmentable dimension IDs:
    • Note that segmenting multiplies output size. You can keep responses small by using a coarser resolution, a shorter date range, limit_num_segments (keeps the top N by value and folds the rest into "Other"), or aggregate when you only need per-segment totals.
  • Use aggregate for summary-only questions such as totals or averages (e.g. "total Q1 revenue"). Prefer this over fetching and computing from raw data points yourself. Combined with segment it returns compact per-segment summaries (e.g. country averages). In the output, values will be empty and summary will contain just those operations.
  • Pass currency to convert outputs to some monetary unit (see yaxis_currency in the response).

Reading get-chart-data outputs

  • measures lists the metrics the chart returns (display name, unit, description). Most charts return several, e.g. revenue may return Revenue, Transactions, and Ad Impressions.
  • values is a flat array of points {cohort, measure, value, incomplete}, plus segment when segmented. cohort is the Unix timestamp of the period start; measure and segment are indexes into the measures and segments arrays. The first segment is usually a "is_total": true - never sum it together with the other segments.
  • summary holds total and average per measure display name, nested per segment when segmented.
  • Points with incomplete: true cover partial periods: the current period, and the first period when start_date falls mid-period (since expand_periods defaults to false). Exclude them from trend or comparison analysis, and call them out when presenting. Point-in-time charts (MRR, actives, trials) ignore expand_periods: their values are snapshots at period boundaries and are never partial.
  • annotations lists dated notes the user made on their dashboard (e.g. releases, launches or experiments). Check them when explaining movements in the data.
  • Invalid filters, segments, or selector values fail with a 400 parameter_error whose message lists the supported IDs. On such errors, re-read the options schema instead of retrying guesses.

3. Analyze the data

  • Segmented responses include a Total segment, and the limit_num_segments cap folds segments beyond the top N into an Other segment. Use Total as the baseline; do not sum segments yourself.
  • Do complex arithmetic on chart output (growth rates, segment shares, combining numbers across calls) with scripts (e.g. jq or a short Python script) instead of reasoning over the numbers.
  • The most recent period may be flagged incomplete. Do not compare it against full periods without saying so.
  • Before speculating about the cause of a metric shift, first check the available user annotations.
  • Cohort charts measure within a cumulative window from first seen, chosen by a selector (conversion_timeframe on conversion charts, customer_lifetime on realized LTV charts), one window per call. State the window when presenting results and hold it constant when comparing cohorts.

Interpreting metrics

Subscription apps are driven by four forces:

  • Acquisition - how many new customers are arriving to the app
  • Conversion - how many of those customers are converting into trials or paid plans
  • Retention - how long do those customers retain
  • Reactivation - how can you bring back old users

The net movement of an apps revenue will be the result of the combination of these forces. When giving advice, always use benchmark data to make sure you aren't incorrectly diagnosing an issue.

General guidelines:

  • When using the data tools, date ranges are inclusive (start_date and end_date are included in the range). When asked for data for the "last N days", take that into account (use today as end date, start date is (N-1) days before today).
  • Provide links to RevenueCat charts (see the Dashboard URL Format section below) where it is useful. Provide specific links including filters, segments, date ranges, etc — eg. if you are asked for proceeds in the last 3 months, link to the revenue chart with custom date range of the last 3 months and the revenue_type selector set to proceeds, don't link to the plain revenue chart

Revenue

  • When asked for general revenue numbers without additional specification, default to gross revenue (ie. revenue including taxes and store commissions) and call it out.

Acquisition

  • Use the New Customers chart to understand how much top of funnel the app is driving.
  • Segmenting New Customers by Country, or Apple Ads dimensions can be helpful in informing acquisition.
    • RevenueCat's Apple Ads integration sets attribution dimension information like campaign, ad group, keyword
    • Developers can also manually set these attribution dimensions on a per-customer level using reserved customer attributes
  • Do not treat a zero result from an explicit attribution filter as proof that the broader channel has zero users or zero activity. For example, attribution_source = Organic only means users explicitly tagged with that value; it does not include untagged users or every organic/non-paid user.
  • If attribution data is sparse or missing, say that clearly. Use "unattributed" or "not explicitly tagged" rather than assuming those users came from a specific channel.

Conversion

The definition of conversion may vary depending on what model the app is using. They may be converting to a trial, that then converts into a subscription. Or they may be sending users directly to a subscription.

  • Use the Initial Conversion chart to see the proportion of new customers that start a subscription or trial within the selected conversion timeframe.
  • Use the Conversion to Paying chart to see the proportion of new customers that made a payment within the selected conversion timeframe.
  • You can then further determine if they are using free trials by looking at the New Trials chart.
  • The Trial Conversion Rate chart is a helpful chart for understanding the performance of just that trial conversion.
  • Filtered charts keep the all-new-customers denominator. For example, filtering Conversion to Paying on a specific product_id gives the share of ALL new customers converting to that product, not that product's own conversion rate. State this caveat when presenting filtered results.

Retention

  • The Churn chart will tell you the % of the active subscriber base that is lost each period. It can be difficult to interpret or benchmark because it is a blend of different periods.
  • When you want to understand the long term retention of different products, look at the Subscription Retention chart

Reactivation

  • The only real way to understand Reactivation is looking at the MRR Movement chart and the Resubscription MRR

Analytics comparisons

  • Compare like with like. When analyzing an acquisition cohort or segment, compare it against the overall baseline using the same metric, chart, date range, conversion window, and cohort definition before making a directional claim.
  • For open-ended questions like "how are {segment} users doing?", do not stop at segment-only metrics. Pull the requested segment and an overall/unfiltered baseline for the key conversion or revenue-quality metric, then judge performance relative to that baseline. Do not evaluate a segment as "healthy", "underperforming" etc. without comparing it to a baseline.
  • Do not compare revenue or conversions from a filtered new-customer cohort against total app revenue from all cohorts and renewals. If you cannot get a matching baseline, say so and avoid directional performance claims.

Chart Dashboard Links

Generate shareable links to RevenueCat dashboard charts.

Constructing a Link

A chart link must follow a specific Dashboard URL Format and must be built from a verified previous successful get-chart-data call.

  1. If there isn't a previous successful get-chart-data call for this chart, follow the Querying RevenueCat charts workflow above first.
  2. Construct the link, starting with base: https://app.revenuecat.com/projects/{project_id}/charts/{chart_name}.
  3. Add range param with date range. This is required.
  4. Add resolution param with resolution. Don't trust defaults.
  5. Add any filters as filter params.
  6. Add segment as segment param, if segmenting.
  7. Add chart-specific selectors as needed.
  8. URL-encode all values (spaces → +, colons → %3A, etc.)

Dashboard URL Format

IMPORTANT: Use this exact structure:

https://app.revenuecat.com/projects/{project_id}/charts/{chart_name}?range={range_value}
  • {project_id} — The short hex ID (e.g., 56965ae1), not the full proj56965ae1
  • {chart_name} — The same chart name used with get-chart-data (revenue, churn, mrr, conversion_to_paying, etc.)
  • Project ID goes in the path, not as a query parameter

Correct example:

https://app.revenuecat.com/projects/56965ae1/charts/revenue?range=Custom%3A2025-11-16%3A2026-02-13

WRONG — do not use:

https://app.revenuecat.com/charts/revenue?project=proj56965ae1&chart_start=...&chart_end=...

Query Parameters

range param — required

The range parameter controls the date range. Format: {preset}:{start_date}:{end_date}, with start_date and end_date in YYYY-MM-DD format. Use Custom as the preset.

Always use this format — do not use start_date, end_date, chart_start, or chart_end params. Note: The : between parts must be URL-encoded as %3A.

Example: range=Custom%3A2025-01-01%3A2025-12-31

resolution param

Value Meaning
0 Daily granularity
1 Weekly granularity
2 Monthly granularity
3 Quarterly granularity
4 Yearly granularity

segment param

Dimension to break down the data by. Use the exact dimension ID you were using to make the get-chart-data request.

  • country — by country
  • store — by app store (App Store, Play Store, etc.)
  • product_id — by product identifier
  • platform — by platform (iOS, Android, etc.)
  • offering_identifier — by offering

Segments vary per chart — only link a segment you successfully used in a get-chart-data call for that chart.

filter params

Filters are passed as individual query filter params with the content {dimension}%3A%3D%3A{value}. Use the dimension names you used for the get-chart-data request.

Dimension Example
country filter=country%3A%3D%3AUS
store filter=store%3A%3D%3Aapp_store
product_id filter=product_id%3A%3D%3Aprodbb68905d98
platform filter=platform%3A%3D%3AiOS

To use multiple filters, regardless of whether they are for the same dimension or multiple dimensions, include multiple filter query parameters. Passing multiple filters for the same dimension will result in an OR operation, passing filters for different dimensions will result in an AND operation.

Chart-Specific Selectors

Selectors are passed as individual query params, with the same names and values used in the get-chart-data selectors argument. Orientative examples (truth in get-chart-data):

  • revenue_type (revenue chart) — revenue, revenue_net_of_taxes, or proceeds
  • conversion_timeframe (conversion charts) — 0_days, 3_days, 7_days, 14_days, 30_days, or unbounded
  • customer_lifetime (realized LTV charts) — 7_days, 14_days, 30_days, 3_months up to 24_months, or unbounded

API to Dashboard Parameter Mapping

When translating from API parameters to dashboard URLs:

API Parameter Dashboard Parameter
start_date + end_date range=Custom%3A{start}%3A{end} (use Custom preset)
segment segment
filters (JSON array) Individual filter query params
selectors (JSON object) Individual query params

Example: Building a Link

User wants: "Revenue chart for last 90 days, segmented by country, filtered to US and Germany"

Calculate dates: if today is 2026-02-13, then 90 days ago is 2025-11-16.

https://app.revenuecat.com/projects/56965ae1/charts/revenue?range=Custom%3A2025-11-16%3A2026-02-13&segment=country&filter=country%3A%3D%3AUS&filter=country%3A%3D%3ADE

User wants: "Churn chart from August 2025 to now"

https://app.revenuecat.com/projects/56965ae1/charts/churn?range=Custom%3A2025-08-01%3A2026-02-13

Getting Project ID

The project ID can be found via the list-projects tool, which lists all projects with their ID.

  • The tool returns IDs starting with proj, for example proj56965ae1
  • For dashboard URLs, strip the proj prefix — use just 56965ae1 in the path

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。