# Reports and charts

> Eight read-only MCP tools to see how the community is doing and turn it into a chart or table in the conversation — sales, subscriptions and MRR, active members, engagement and the ranking, events, courses, one member's activity and the month's dashboard — with ready-made recipes.

Ask the assistant how sales are going, who takes part the most or what one person did, and it answers with numbers and, if you want, with a chart or a table right in the conversation (in Claude, as an artifact). The eight tools on this page only read: none of them changes anything in the community.

## In short

| Tool | What it does | Minimum role | Type |
|---|---|---|---|
| [`sales_report`](#sales-report) | Sales by day, week or month, by plan, product or payment method, and the total since the first sale | Admin or finance | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`subscriptions_report`](#subscriptions-report) | MRR, new and canceled subscriptions, churn, courtesies and downsell | Admin or finance | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`members_report`](#members-report) | New, active and inactive members, by group and by tag | Moderator | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`engagement_report`](#engagement-report) | Posts, comments, reactions, the most engaged, unanswered posts and the ranking points | Moderator | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`events_report`](#events-report) | Events and how many answered going, maybe and not going | Moderator | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`courses_report`](#courses-report) | Enrollments, completions and progress per course | Moderator | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`member_activity`](#member-activity) | What one person did: counts, ranking points and links | Admin | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`community_overview`](#community-overview) | This month against last month, in one call | Moderator or finance | <span class="tool-kind tool-kind-read">Read-only</span> |

**Who sees what.** Money (sales and subscriptions) belongs to the owner, the admin and **finance**. Community (members, engagement, events and courses) belongs to the owner, the admin and the **moderator**. One specific person's activity is for the owner and the admin only. In `community_overview`, each role sees only its own area's block: finance sees the money, the moderator sees the community.

## How answers arrive

Every answer is ready to become a chart:

| Part | What it is |
|---|---|
| `series` | One row per period (`period`), with that period's numbers. Periods with nothing show up as zero, so the chart never skips a month |
| `totals` | The sum of the requested range |
| `currency` | The currency of the amounts (one per query; by default, the one the community sells the most in) |
| `timezone` | The time zone used to count days |

Common parameters:

| Parameter | Values | Default |
|---|---|---|
| `interval` | `day` (day), `week` (week, starting Monday) or `month` (month) | `month` |
| `from`, `to` | `YYYY-MM-DD` dates, inclusive. They are widened to the start and end of the period: with `month`, March 15 becomes March 1 | 30 days, 12 weeks or 12 months up to today |
| `timezone` | A time zone such as `America/New_York` | The time zone of the community's country |

A query covers at most 366 days, 156 weeks or 120 months. For a longer period, use a larger interval.

**What each number means:**

- **Sales** come from the [statement](/pagamentos/saldo-e-extrato): the report's net is the statement's net for the same period. The only fee shown is the [platform fee](/pagamentos/taxa-da-plataforma), which is independent of the payment method.
- **MRR** is monthly recurring revenue: each paying subscription converted to a month (a yearly one divided by 12). Courtesies and subscriptions in trial are left out.
- **Active** is anyone who did at least one thing in the period: posted, commented, reacted, answered an event (going or maybe), enrolled in or studied a course, or earned ranking points (which includes the daily login, when the ranking is on). Only reading does not count, because views are not recorded.
- **Event attendance** does not exist: Memberfy keeps each person's answer (going, maybe, not going), not who showed up. The report says so (`attendanceTracked: false`).

## `sales_report`

<span class="tool-kind tool-kind-read">Read-only</span>

**Sales report.** Per period: gross, platform fee, installment interest, net, number of sales, average ticket, refunds and chargebacks (separately), and the net after them. It also brings payouts requested and completed, and the total since the first sale. *Minimum role: admin or finance.*

Parameters: the common ones, plus `group_by` (`product`, `plan`, `payment_method` or `product_type`) and `currency`.

**Returns:** `series`, `totals`, `allTime`, `payouts` and, with `group_by`, `groups`: each plan, product or payment method with its own series. A sale that belongs to no plan falls in the group with no name.

**Ask like this:** *"How much have I earned in total since I started selling?"*

**Next:** the response suggests, in `next_steps`, the same report for the period right before, with the dates filled in, to compare. See [Next steps](/mcp/ferramentas#next-steps).

## `subscriptions_report`

<span class="tool-kind tool-kind-read">Read-only</span>

**Subscriptions report.** Per period: MRR, paying subscriptions, new, canceled, churn (the share of those active at the start of the period that canceled), in trial and courtesies. *Minimum role: admin or finance.*

Parameters: the common ones, plus `currency`.

**Returns:** `series`, `totals`, today's snapshot in `current` (MRR, ARR, by status, how many end with their period, past due, courtesies), `byPlan` and `downsell` (last-chance offers shown and accepted).

**Ask like this:** *"How did MRR evolve this year? What was each month's churn?"*

> [!NOTE]
> History is rebuilt from each subscription's start and end dates. A past-due spell that was resolved, or a pause, leaves no date, so it only shows in today's snapshot.

## `members_report`

<span class="tool-kind tool-kind-read">Read-only</span>

**Members report.** Per period: how many joined, how many were active, the total at the end of the period and the inactive ones. *Minimum role: moderator.*

Parameters: the common ones.

**Returns:** `series`, `totals`, `current` (total, active and inactive over the last 30 days, by role), `byGroup` and `byTag`.

**Ask like this:** *"How many new members did we get per week last quarter, and how many were active?"*

## `engagement_report`

<span class="tool-kind tool-kind-read">Read-only</span>

**Engagement and ranking report.** Per period: feed posts, content, comments, reactions, active members and ranking points. It also shows where the conversation happens, who took part the most, the posts nobody answered and the data the [ranking](/espacos/ranking) is built from. *Minimum role: moderator.*

Parameters: the common ones, plus `order_by` (`points`, `interactions`, `posts`, `comments` or `reactions`; `points` by default when the ranking is on), `page` and `limit` (up to 100).

**Returns:** `series`, `totals`, `bySpace`, `members` (paginated: posts, comments, reactions, interactions, points in the period and today's level), `unansweredPosts` and `ranking` (the point rules, points per action and per period, and how many members are at each level).

**Ask like this:** *"Who are this month's 10 most engaged members? And which actions earned the most points?"*

## `events_report`

<span class="tool-kind tool-kind-read">Read-only</span>

**Events report.** Per period: the events held and the answers received. Per event: how many said going, maybe and not going, with the link. *Minimum role: moderator.*

Parameters: the common ones, plus `page` and `limit`.

**Returns:** `series`, `totals` and `events`. Attendance is not recorded, and the assistant says so if you ask who showed up.

**Ask like this:** *"How many people confirmed for each event this semester?"*

## `courses_report`

<span class="tool-kind tool-kind-read">Read-only</span>

**Courses report.** Per period: enrollments, completed courses and completed lessons. Per course: enrollments, completions, completion rate and the average progress of those enrolled. *Minimum role: moderator.*

Parameters: the common ones, plus `page` and `limit`.

**Returns:** `series`, `totals` and `courses`, with each course's link.

**Ask like this:** *"Which course has the lowest completion rate?"*

## `member_activity`

<span class="tool-kind tool-kind-read">Read-only</span>

**One member's activity.** What a person did in the community, in the period and ever: posts, comments, reactions, event answers, enrollments, purchases, subscriptions, completed courses and certificates. It brings the ranking points per action, the level and the position, and recent items with links. *Minimum role: admin.*

Parameters: `member` (the profile id, from `list_members`, the e-mail or the profile link copied from the app) and the common ones. For a timeline of everything the person did, with date and time, use [`list_activity_logs`](/mcp/ferramentas-membros#list-activity-logs).

**Returns:** `counts`, `ranking` and `recent`. For purchases, only the amount paid and the payment method. There is no browsing log: the report shows what the person did, not what they saw.

**Ask like this:** *"What has maria.silva@memberfy.net done in the community over the last 3 months?"*

## `community_overview`

<span class="tool-kind tool-kind-read">Read-only</span>

**Community dashboard.** This month so far against all of last month and against last month up to the same day: revenue and MRR, new members, engagement and the events of the next 30 days. *Minimum role: moderator or finance; each sees its own area's block.*

Parameters: `timezone`.

**Returns:** `money` (for owner, admin and finance) and `community` (for owner, admin and moderator).

**Ask like this:** *"How is this month going compared with the last one?"*

## Recipes

### Revenue chart per month per plan

**For:** owner, admin or finance.

> Make a stacked bar chart of net revenue month by month in 2026, one color per plan, and below it a table with each plan's total and average ticket.

| # | Tool | What it does |
|---|---|---|
| 1 | `sales_report` | `interval: month`, `from: 2026-01-01`, `to: 2026-12-31`, `group_by: plan` |

**Result:** the chart and the table in the conversation. Each plan in `groups` already comes with the full series, with zero in months without sales. To see refunds too, ask *"and a line with the refunds"*.

### Who the 10 most engaged are

**For:** owner, admin or moderator.

> Who were the 10 most engaged members over the last 30 days? Show them in a table with posts, comments, reactions, points and level, and tell me which actions earned the most points.

| # | Tool | What it does |
|---|---|---|
| 1 | `engagement_report` | `interval: day`, `limit: 10`, `order_by: points` |

**Result:** the table with the top 10 and a summary of `ranking.byAction`. With the ranking off, ask for `order_by: interactions`. To see one person from the list in detail, follow up with `member_activity`.

### The week's summary

**For:** any team role. Finance gets only the money part; the moderator, only the community part.

> Write the week's summary: sales and new subscriptions, new members, who took part the most, the posts left unanswered and the upcoming events with how many confirmed. End with three suggestions of what to do.

| # | Tool | What it does |
|---|---|---|
| 1 | `community_overview` | The month so far, for context |
| 2 | `sales_report` | `interval: day`, the last 7 days |
| 3 | `engagement_report` | `interval: day`, the last 7 days, `limit: 5` |
| 4 | `events_report` | From next week on |

**Result:** the summary in the conversation. If you want to publish it, ask *"write a Feed post with this and show me first"*: the assistant uses `create_post` after your ok.

## Related

- [Tools](/mcp/ferramentas)
- [Recipes](/mcp/receitas)
- [Tools · Finance](/mcp/ferramentas-financeiro)
- [Security and limits](/mcp/seguranca)
