I like HubSpot. I'll say that upfront because this post is going to be critical, and I want it clear that I'm not grinding an axe. HubSpot is a genuinely good CRM for small teams — the free tier is generous, the UX is miles ahead of Salesforce for companies that don't have a full-time admin, and the ecosystem is massive. If you're a 15-person SaaS company picking a CRM, HubSpot is probably the right call.
But HubSpot's reporting is where the "free is great" story starts breaking down. The gap between what small teams need from reporting and what HubSpot gives them without a $890/month upgrade is one of the most frustrating cliffs in the SaaS pricing world. You can store your data in HubSpot for free. You just can't ask interesting questions about it.
What HubSpot reporting actually gives you at each tier
Before we get into workarounds, let's be precise about what each tier includes. I see a lot of blog posts that describe HubSpot's reporting in vague terms. Here are the specifics as of mid-2026:
| Feature | Free ($0) | Starter ($20/mo) | Professional ($890/mo) | Enterprise ($3,600/mo) |
|---|---|---|---|---|
| Custom reports | None | Limited (basic single-object) | Full custom report builder | Full + custom objects |
| Dashboards | 10 max | 10 max | 25 per account | 50 per account |
| Cross-object reporting | No | No | Limited pairs | Full |
| Calculated properties | No | No | Yes | Yes |
| Attribution reporting | No | No | Yes (Marketing Hub Pro) | Yes |
| Revenue analytics | No | No | Basic | Full (forecasting, recurring rev) |
| Data sync | No | Basic (via Ops Hub Starter) | Yes | Yes + custom objects |
Free tier. You get 10 pre-built dashboards with pre-built reports. You can filter them and adjust date ranges. That's it. You cannot create a custom report of any kind. If the pre-built report doesn't exist, you're exporting to a spreadsheet. For a founder tracking 20 deals and a handful of contacts, this is fine. The moment you want to answer "which lead source converts fastest" or "what's our average deal cycle length by company size," you're stuck.
Starter ($20/month per seat). You get the ability to create basic custom reports, but they're limited to single-object views — contacts, deals, or tickets, not combinations. You can build a report on deal amounts by stage, or contacts by lifecycle stage, but you can't report on deals filtered by ticket status, or contacts who are associated with deals above a certain amount. The analytics dashboards for contacts and deals are useful but shallow. For $20/month this is a fair value. But "fair value" and "answers the questions leadership actually asks" are different things.
Professional ($890/month). This is where HubSpot's reporting gets genuinely capable. The custom report builder supports multi-object joins (deals with contacts, deals with companies, tickets with contacts), calculated properties let you build derived fields, and you get attribution reporting if you're also on Marketing Hub Professional. The problem isn't quality — it's price. $890/month for a 15-person company that needs maybe 5 seats is $53,400/year. That's a real line item, and a lot of companies can't justify it when the only feature driving the upgrade is reporting.
Enterprise ($3,600/month). Everything, including custom objects (so you can bring in data types HubSpot doesn't natively support), behavioral event triggers, custom goals, and multi-touch revenue attribution. This tier exists for 200+ person companies. If you're reading this post, it's probably not relevant to you, and that's fine.
The 5 HubSpot reporting frustrations for small teams
These come up in every conversation I have with founders and ops managers running on Free or Starter.
1. You can't join deal data with ticket data
"Show me which closed-won deals from Q1 have the most support tickets" is a completely reasonable question. It tells you which customers were expensive to serve, which informs both CS staffing and pricing decisions. On HubSpot Starter, this report doesn't exist. Deals and tickets are separate objects, and cross-object reporting requires Professional. Your options are: export both lists and VLOOKUP them together, or pay $890/month. That's the entire decision tree.
2. Custom properties exist but you can't report on them well
HubSpot lets you create custom properties on every tier, which is great. You can add "Annual Contract Value" or "Implementation Complexity" or "Lead Source Detail" as custom fields on deals or contacts. But on Free and Starter, custom report builder access is either nonexistent or severely limited, so those custom properties sit there — filled with data you can't aggregate, filter by, or trend over time. You can see them on individual records, but you can't ask "what's our average deal size broken down by Implementation Complexity." It's like having a filing cabinet full of answers you can't search.
3. No way to bring in external data
This is the one that really bites. Your CRM knows about deals and contacts. It does not know about:
- Stripe: What's actually being billed, whether payments are landing, whether a customer downgraded
- Product usage: Whether a closed-won customer actually logged in and started using your product
- Support tools: Intercom, Zendesk, or Help Scout ticket volume and resolution times
- Ad platforms: Google Ads spend at the keyword or campaign level, correlated to deal outcomes
HubSpot's built-in reporting has zero visibility into any of this. Even at Professional tier, you're reporting on what HubSpot contains — which is CRM data and marketing engagement data (email opens, page views), not billing or product data. The closest you get is Operations Hub, which can sync some external data, but it doesn't turn HubSpot into a cross-system reporting tool. It turns it into a slightly larger silo.
4. The report builder UI fights you on anything beyond basics
This one is more subjective, but I hear it constantly. HubSpot's custom report builder (when you have access to it) uses a drag-and-drop interface that works well for "deals by stage" and "contacts by lifecycle stage" — standard grouping-and-counting reports. The moment you want something more nuanced — a cohort analysis, a comparison of two time periods side by side, a report with conditional logic ("show me deal conversion rate, but only for deals where the contact also attended a webinar") — the builder starts fighting you. It's not that it can't do these things (on Professional, many are possible). It's that the UI makes complex reports feel like you're assembling IKEA furniture with missing pages in the instructions.
Salesforce's report builder has the same problem, honestly. These tools are built for the 80% use case, and the 20% of questions that actually matter to leadership are the ones that don't fit.
5. Attribution reporting requires Marketing Hub Professional
If you're running paid ads and want to know which campaigns actually generate revenue (not just leads), HubSpot requires Marketing Hub Professional — that's the $890/month tier. On Starter, you can see basic traffic analytics and form submissions by source, but you can't tie a closed deal back to the Google Ads keyword that sourced it. For a company spending $5-10k/month on ads, this is critical data. The alternative is stitching UTM parameters from HubSpot contact records to deal outcomes manually, which works but is tedious and breaks every time someone forgets to tag a landing page URL.
Workarounds that actually help
Not all of these are free, but all of them are cheaper than upgrading to Professional.
Operations Hub Starter ($20/month)
This is HubSpot's own answer to the data-silo problem, and at Starter tier it's limited but useful. You get basic data sync with a few dozen apps — including Stripe, QuickBooks, Mailchimp — that syncs data bidirectionally. It won't give you cross-system reporting, but it will get external data into HubSpot as contact or company properties, which you can then filter on in whatever reporting you do have access to. Think of it as a plumbing upgrade, not a reporting upgrade.
Export to Google Sheets or Excel
The oldest workaround in the book, and it still works for ad-hoc questions. Export your deals, contacts, or tickets to CSV. Open in Sheets. Pivot, filter, VLOOKUP, chart.
This is genuinely fine for one-off analyses. Where it falls apart:
- Repeatability. Every refresh is a fresh export and a fresh manual join. By the third time you do it, you'll start wishing for a better solution.
- Row limits. HubSpot caps exports depending on your tier. Free tops out at 1,000 rows per export for some object types.
- No live data. The moment you export, your report is a snapshot. Stale by tomorrow.
HubSpot API + Python scripts
If you have someone on the team who can write Python (or you're comfortable with ChatGPT-assisted scripting), the HubSpot API is solid. You can pull deals, contacts, companies, tickets, and their associations programmatically. Combine that with the Stripe API and you can build any cross-system report you want.
# Basic example: pull all closed-won deals from the last 90 days
import hubspot
from datetime import datetime, timedelta
client = hubspot.Client.create(access_token="your-token")
ninety_days_ago = int((datetime.now() - timedelta(days=90)).timestamp() * 1000)
response = client.crm.deals.search_api.do_search(
public_object_search_request={
"filterGroups": [{
"filters": [
{"propertyName": "dealstage", "operator": "EQ", "value": "closedwon"},
{"propertyName": "closedate", "operator": "GTE", "value": str(ninety_days_ago)}
]
}],
"properties": ["dealname", "amount", "closedate", "dealstage"],
"limit": 100
}
)The downside: you're now maintaining a script. When HubSpot updates their API (they just shipped v4 for some endpoints), your script breaks. When the team member who wrote it leaves, nobody knows how to fix it. And you need to schedule it yourself — cron jobs or GitHub Actions or whatever you prefer — to keep the data fresh.
Third-party reporting tools
Databox connects to HubSpot (and 70+ other sources) and builds dashboards from the combined data. Pricing starts around $47/month. Good for KPI dashboards, less good for ad-hoc analysis.
Supermetrics pulls data from HubSpot and marketing platforms into Google Sheets, Looker Studio, or a warehouse. Starts at $19/month per connector. Great for marketing reporting specifically — less useful for sales/CS reporting.
Whatagraph is similar to Databox but focused more on agency-style client reporting. If you're a marketing agency managing HubSpot for clients, this is built for you.
All three share a limitation: they report on what each source contains independently. They don't join data across sources in the way a SQL query does. You can put a HubSpot chart next to a Stripe chart on the same dashboard, but you can't build a chart that shows "deal amount from HubSpot vs. actual collected revenue from Stripe for the same customer."
When to look beyond HubSpot for reporting
At some point, the workarounds stop being workarounds and start being a stack of duct tape that's more fragile than the problem it solves. Here's when that point usually arrives:
When you need cross-source analysis. The moment the question involves data from two different systems — "which HubSpot deals have active Stripe subscriptions," "which high-value contacts also have open support tickets in Zendesk" — you need something that can actually join across sources. No amount of HubSpot tier upgrades gives you this, because HubSpot's reporting only knows about HubSpot's data. Even Professional tier with Operations Hub syncing Stripe data in won't let you build the kind of flexible cross-system queries that these questions require.
When you need monitoring, not just reporting. Reports answer questions you thought to ask. Monitoring catches the things you didn't. The classic example: a deal marked "closed-won" in HubSpot where there's no matching active subscription in Stripe. That's revenue your CRM says you have but your bank account doesn't. A report might find it — if someone remembers to run the report. Monitoring finds it automatically and sends a Slack message to whoever needs to act.
This is the specific use case where Fastero fits. It connects to HubSpot and Stripe, joins them at the account level, and watches for mismatches — won-but-unpaid deals, silent churn, pricing drift between what HubSpot says a deal is worth and what Stripe is actually billing. It fires Slack alerts when something looks off, catching things that neither system will surface on its own.
When you need ad-hoc answers without building a new report each time. The most underrated reporting need is the one-off question. Your CEO asks "how many deals did we close last quarter where the contact's company has fewer than 50 employees and the deal source was inbound" and you need to answer it in the next 10 minutes, not build a new saved report, configure the filters, choose the visualization, and then throw it away because nobody will ever ask that exact question again. This is where an AI layer on top of your data starts making sense — you ask a question in plain language, it writes and runs the query, and you get an answer. It's not a replacement for a well-built dashboard, but it eliminates the "I need a report that doesn't exist yet" bottleneck.
The honest recommendation
If you're on HubSpot Free or Starter and frustrated with reporting, here's how I'd think about it:
-
Stay on Starter if your reporting needs are genuinely basic (pipeline overview, deal counts, contact lists). Export to Sheets for anything one-off.
-
Add a third-party tool (Databox, Supermetrics, or similar) if you need better dashboards across marketing channels but don't need cross-system joins.
-
Write scripts if you have a technical team member and need specific cross-system reports on a recurring basis. Budget 2-4 hours per report to build and an hour a month to maintain.
-
Upgrade to Professional only if reporting is genuinely the bottleneck on your revenue operations — not just a nice-to-have, but something that's costing you deals or causing you to miss problems. At $890/month it needs to pay for itself.
-
Use a cross-source tool when the questions you need answered involve data from more than one system. That's not a HubSpot problem — no CRM will ever be great at reporting on data it doesn't own.
There's no single right answer. But the wrong answer is paying $890/month for Professional when all you needed was a better way to query the data you already have.
Related: HubSpot vs Salesforce for Stripe Integration | Stripe Reporting Tools Beyond the Dashboard | How to Sync Stripe to HubSpot with Python
Try Fastero free — connect your CRM and billing data, get live revenue dashboards, and set up alerts that catch leaks before your next board meeting. No credit card required.
Last updated: August 2026.

