SuperAPI AI Directory

mrr-growth

Data & analytics

View repository

Updated 10-16 06:51

About this skill

MRR Growth

Show the MRR waterfall — what drove this period's net MRR change broken into new, expansion, reactivation, contraction, and churn components with MoM Δ.

Setup

Resolve org ID via ZohoBilling_List_all_Organizations. If multiple orgs exist, ask the user which one before fetching any data.

Default period: this month (SubscriptionDate.ThisMonth). Accept natural-language overrides from $ARGUMENTS and map to the closest allowed filter_by value, or use SubscriptionDate.CustomDate with explicit from_date / to_date when the user names a specific range.

Allowed filter_by values: ThisMonth · ThisQuarter · ThisYear · PreviousMonth · PreviousQuarter · PreviousYear · LastThreeMonths · LastTwelveMonths · CustomDate

Fetch (run all calls in parallel)

# Tool Params
1 ZohoBilling_Get_MRR_Report current period · group_by: [{field: month_start_time, group: report}]
2 ZohoBilling_Get_MRR_Report prior comparable period (one step back)
3 ZohoBilling_Get_Gross_MRR_Report current period · same group_by

Call 2 derives the prior period:

  • ThisMonth → PreviousMonth
  • ThisQuarter → PreviousQuarter
  • ThisYear → PreviousYear
  • LastThreeMonths → CustomDate 3 months earlier
  • CustomDate → shift the same span one period back

Output

Render a MRR waterfall table. See references/output-format.md for the exact format and health-call rules.

Required rows (in order): Previous MRR → + New → + Expansion → + Reactivation → − Contraction → − Churn → Net MRR

For each row show: current value · prior value · Δ absolute · Δ %.

End with:

  • Health call: 🟢 Green / 🟡 Yellow / 🔴 Red (see output-format.md for rules)
  • Biggest driver: one sentence naming the largest positive and negative component
  • Gross vs Net gap: if gross MRR exceeds net MRR by > 20%, add ⚠ discount-leakage flag

Constraints

  • Use API total fields — never manually sum paginated rows
  • Show $0 for any component that returns null or zero — do not omit rows
  • If prior period is unavailable (new org), show current period only with a note
  • Never estimate, interpolate, or extrapolate — report only what the API returns
  • Propose-only: no write actions

Edge cases

  • Partial month: label the period "Jun 1–29 (partial)" not "June"
  • All zeros: report $0 MRR with note "No subscription activity in this period"
  • filter_by unrecognised: ask the user to clarify before calling any tool