Skip to main content

Built-In Billing Analytics

Recurso provides built-in analytics that give you real-time visibility into your billing performance. Track monthly recurring revenue (MRR) movements, monitor usage patterns, and ask free-form questions about your data using GenAI-powered natural-language queries.

MRR Tracking

FX-normalized MRR with per-currency breakdown and rate provenance

Usage Statistics

Aggregate usage metrics across meters and customers

AI Queries

Ask questions about your data in plain English

MRR Tracking

Monthly Recurring Revenue is the core health metric for any subscription business. Recurso sums active-subscription MRR per currency, converts each currency bucket to a single reporting currency, and returns the normalized total together with the exact exchange rates used — auditable, not just a number.

Get MRR Metrics

Responses are cached for up to 5 minutes.
MRR values are returned in the smallest currency unit (e.g., paise for INR, cents for USD). Divide by 100 to get the display value. Each breakdown[] entry shows the native amount, the converted amount in the reporting currency, and the rate applied.

FX Normalization

Reporting currency resolution

The reporting currency is resolved in order:
  1. The tenant’s BaseCurrency (set on your account), when configured
  2. The REPORTING_CURRENCY environment variable (see Going to Production)
  3. USD
Organization-level consolidated MRR (GET /v1/organizations/{id}/analytics/mrr) is normalized the same way and returns the same fx snapshot alongside its per-currency, per-tenant breakdown.

Rate provenance (fx.source)

The fx snapshot tells you exactly which rates produced the number, and how trustworthy they are:
source: 'static-fallback' is deliberate honesty: the totals are still normalized, but with bundled approximate rates rather than live market rates. Treat such numbers as indicative and alert on the condition if your reporting depends on rate freshness.

Unconvertible currencies

If a currency bucket cannot be converted (no rate available even in the static table), it is excluded from normalized_mrr rather than silently mixed in. The bucket still appears in breakdown[] with its native amount, converted_amount: 0, and an error explaining why — so the gap is visible instead of corrupting the total.

Usage Statistics

Monitor consumption metrics across all metered subscriptions. Usage statistics help you understand customer engagement, forecast revenue, and identify upsell opportunities.

Get Usage Stats

Usage Parameters

Query usage stats without a meter_id to get an aggregate view across all metered dimensions — useful for executive dashboards.

GenAI Natural-Language Queries

The /analytics/ask endpoint lets you query your billing data using plain English. Recurso uses an LLM to translate your question into a data query, executes it, and returns both the answer and the underlying data.

Ask a Question

Ask Parameters

Response Fields

Example Queries

Here are some questions the AI query engine handles well:
  • “What is my MRR growth rate over the last 6 months?”
  • “Which plan generates the most revenue?”
  • “What is the average revenue per customer?”
  • “Show me revenue by currency for Q1 2026”
  • “How many customers signed up this month?”
  • “Which customers have been on a trial for more than 14 days?”
  • “List my top 10 customers by lifetime value”
  • “What is my customer churn rate?”
  • “How many subscriptions are past due right now?”
  • “What is the upgrade-to-downgrade ratio this quarter?”
  • “Show me subscriptions expiring in the next 7 days”
  • “What is the average subscription duration before churn?”
  • “Which customers are approaching their usage limits?”
  • “What is the 95th percentile API usage across all customers?”
  • “Show me usage trends for meter_api_calls over the last 30 days”
  • “Which subscriptions have zero usage this month?”
The AI query engine operates in read-only mode. It cannot modify data. Responses are generated based on your tenant’s data only — queries are fully isolated.

Dunning Analytics

Track the performance of your payment recovery efforts with dedicated dunning analytics endpoints.

Dunning Overview

Get a high-level summary of dunning activity across your tenant:

Dunning Weights

Understand which retry strategies are most effective. Weights indicate how much each retry attempt contributes to overall recovery:

Dunning History

View the timeline of dunning events for a specific period:
See the Smart Retry guide for configuring retry strategies and the Dunning Campaigns guide for email sequences.

Dashboard Integration

Pull analytics data into your own dashboards using the API endpoints above.
1

Fetch MRR on a schedule

Call GET /v1/analytics/mrr daily or hourly to pull the latest MRR breakdown into your data warehouse.
2

Fetch usage stats per meter

Call GET /v1/analytics/usage for each meter to power real-time usage charts.
3

Use AI queries for ad-hoc reporting

Expose POST /v1/analytics/ask in an internal tool so finance and ops teams can self-serve answers.

Webhook Events

Analytics-related events you can subscribe to:

Best Practices

Track Net New MRR

Focus on net new MRR (new + expansion - contraction - churn) as your primary growth indicator

Set Date Ranges Wisely

Use consistent date ranges (calendar months, quarters) to avoid misleading comparisons

Cache AI Responses

Cache results from the /ask endpoint for repeated questions to reduce latency and cost

Automate Reporting

Schedule MRR and usage fetches to keep dashboards always up to date
Combine MRR tracking with usage statistics to identify customers whose usage is growing but whose plan has not expanded — prime upsell candidates.