Revenue Reports You Can Finally Build in HubSpot

June 25, 2026 · The SyncFerry Team

← All posts

The reports your leadership asks for — MRR by owner, ARR trends, churn, AR aging — usually live in Stripe or a spreadsheet because HubSpot never had the data. Once Stripe syncs in, the figures sit on native objects, and HubSpot’s report builder can do the rest. Here are five to build first.

1. MRR by company or owner #

The single most-requested number, now self-serve.

Object Subscriptions
Measure Sum of stripe_mrr
Break down by Company, or the subscription’s HubSpot owner
Filter hs_status = active

Build it as a single-object report on Subscriptions, sum stripe_mrr, and group by owner for a leaderboard or by company for an account ranking. Filter to hs_status = active so canceled lines don’t inflate the total.

2. ARR: pipeline vs. closed #

Compare committed recurring revenue against what’s still in flight.

Object Subscriptions + Deals (cross-object)
Measure Sum of stripe_arr (closed) vs. weighted Deal amount (pipeline)
Break down by Stage / quarter

Use stripe_arr from active Subscriptions as your “closed” recurring revenue and chart it beside open-deal pipeline. This gives leadership a true recurring-vs-new view instead of mixing one-time deal amounts with recurring revenue.

3. Churned MRR this quarter #

The number that explains a flat net-revenue chart.

Object Subscriptions
Measure Sum of stripe_mrr
Filter hs_status = canceled · cancel date within the quarter
Break down by stripe_churn_reason

Filter to canceled subscriptions whose cancellation falls in the period, sum the stripe_mrr they carried, and group by stripe_churn_reason (which records voluntary_churn vs. involuntary_churn). The breakdown turns “we lost $40k” into “we lost $40k, and 60% of it was involuntary — failed payments, not customers choosing to leave” — which is the part you can act on.

4. Invoices outstanding (AR aging) #

Bring accounts-receivable visibility into the CRM.

Object Invoices
Measure Sum of amount / count
Filter hs_invoice_status = open
Break down by hs_due_date (date ranges) or company

Filter invoices to hs_invoice_status = open and bucket by hs_due_date to get a classic 0–30 / 31–60 / 61–90 aging view — inside HubSpot, next to the accounts your team is already working.

5. Revenue by product #

See which products actually carry the revenue.

Object Subscriptions → Products
Measure Sum of stripe_mrr
Break down by Product

Because Stripe Prices sync to HubSpot Products and subscriptions link back to them, you can report on Subscriptions, sum stripe_mrr (which lives on the Subscription object), and group by product to see your revenue mix — and spot the long tail of low-revenue SKUs.

Tips for building these #

Most of these are single-object reports. Reach for the custom report builder only when you need a cross-object view, like ARR vs. open pipeline.

  • Filter on hs_status early. Active vs. canceled is the difference between current MRR and churned MRR — it’s the filter that defines the report.
  • Scope to Stripe with a written stripe_* property (for example, filter where stripe_subscription_id is known) if other billing sources also write to these objects.
  • Save reports to a “Revenue” dashboard so the whole GTM org reads from the same, always-current numbers.

For the properties behind each report, see What syncs to what. For step-by-step build instructions and matching automations, see Example reports & workflows.