← All posts
Housecall ProCustom reportsApril 26, 2026Clint Research Team

How to Build a Custom Report in Housecall Pro

Custom reports in Housecall Pro live on the MAX plan and start from Jobs, Estimates, Customers, or Service Plans. Here's how to build one, save it, and the gaps you'll work around.

9 min read

Key takeaways

  • Custom reports in Housecall Pro require the MAX plan and the Access Reporting permission on your user role
  • You build them by filtering Jobs, Estimates, Customers, or Service Plans list views, choosing columns, and saving
  • HCP custom reports cannot join across two entities (e.g., customers + their last 3 emails) or pull data from outside HCP
Contents
  1. 01What "Custom Report" Means in Housecall Pro
  2. 02Step 1: Confirm Your Plan and Permissions
  3. 03Step 2: Decide Which Entity to Report On
  4. 04Step 3: Open the Right List View
  5. 05Step 4: Apply Filters
  6. 06Step 5: Choose Columns
  7. 07Step 6: Sort and Group
  8. 08Step 7: Save the Report
  9. 09Step 8: Schedule and Share
  10. 10What HCP Custom Reports Can't Do
  11. 11Three Custom Reports Every $1M+ Shop Should Have
  12. 12When to Stop Fighting the Report Builder
  13. 13Sources
  14. 14Frequently Asked Questions

ServiceTitan's 2025 AI in the Skilled Trades Report found 51% of contractors cite "better decision-making" as the top value of AI in their business. Better decisions need better data. For Housecall Pro shops, that starts with a working custom report.

This guide walks through how to build one inside HCP, the four entities you can report on, what saves and what doesn't, and the queries you'll have to handle outside HCP because the report builder can't get there.

What "Custom Report" Means in Housecall Pro

A custom report in Housecall Pro is a saved view of one of these list types:

  • Jobs
  • Estimates
  • Customers
  • Service Plans
  • Invoices
  • Payments

Per HCP's Reporting Tools for MAX Pros help doc, the report builder is gated to MAX-tier customers, and the user role needs the Access Reporting permission toggled on.

You start from a list view, apply filters and column selections, and save the result with a name. The saved report becomes a tile you can pin to a Reporting Dashboard, schedule for email delivery, or share with team members.

It's not a free-form SQL query. It's a configured list view. That distinction matters because most "I can't build this report" complaints come from owners trying to write joins HCP doesn't support.

Step 1: Confirm Your Plan and Permissions

If you're on Basic or Essentials, the report builder doesn't exist for you. You get standard dashboard reports (basic revenue, outstanding invoices, job summary) and exports. To build saved custom reports, you need MAX.

To check permissions: Settings > Employees > [your user] > Permissions. Toggle on Access Reporting if it isn't already.

If you're an Admin owner, you have it. Office staff and CSRs need it explicitly granted.

Step 2: Decide Which Entity to Report On

The entity you start from determines what columns and filters you can use. You can't pivot mid-build. Pick the right starting point:

  • Reporting on revenue and bookings? Start with Jobs.
  • Reporting on quote conversion? Start with Estimates.
  • Reporting on customer lists for marketing? Start with Customers.
  • Reporting on recurring agreements? Start with Service Plans.
  • Reporting on AR aging? Start with Invoices.
  • Reporting on cash flow? Start with Payments.

This is where most shops trip up. They want "all customers tagged 'maintenance' and their next scheduled visit and total lifetime spend." That's a 3-table join. HCP doesn't do it. You'd build three separate reports and stitch them in a spreadsheet.

For more on what custom reports structurally can't answer, see our Housecall Pro reports hidden and missing walk-through.

Step 3: Open the Right List View

Click Reporting in the top nav. The left rail shows All Reports grouped by entity.

Click into the entity (Jobs, Estimates, Customers, Service Plans). The list view loads with default columns and a filter bar at the top.

Per HCP's Creating Reports from the Customer List article, you can also start from the Customer list under the Customers tab and save that filtered view as a report.

Both paths produce the same saved report.

Text Clint: "show me HCP estimates over $2,000 sent in last 30 days that aren't won yet"

Step 4: Apply Filters

The filter panel sits to the right of the list view. Available filters depend on the entity:

Jobs filters:

  • Status (Scheduled, In Progress, Completed, Cancelled)
  • Booked Date range
  • Service Date range
  • Assigned Tech
  • Tags
  • Lead Source
  • Customer Tag
  • Total amount range

Estimates filters:

  • Status (Draft, Sent, Approved, Declined, Expired)
  • Sent Date range
  • Customer Tag
  • Estimate Total range
  • Assigned Tech

Customers filters:

  • Customer Type (Residential, Commercial, Contractor)
  • Tags
  • Last Service Date
  • Lifetime Value
  • Customer Conditions (per HCP campaigns docs)

Service Plans filters:

  • Status (Active, Renewed, Expired, Pending Renewal)
  • Plan Template
  • Renewal Date range

Apply the filters that match the question you're answering. Stack multiple filters where supported.

Step 5: Choose Columns

Click Edit Columns (or the gear icon depending on view). A panel opens with every available field for that entity.

For a Jobs report on tech performance, useful columns:

  • Job Number
  • Customer Name
  • Service Address
  • Service Date
  • Assigned Tech
  • Total
  • Lead Source
  • Job Tags
  • Status
  • Created Date

Check the boxes for columns you want. Drag to reorder. The selected columns become both the on-screen view and the CSV export structure.

Step 6: Sort and Group

Click any column header to sort. Click twice to reverse direction. Click the column menu (three dots) for grouping options where supported.

For a "tech utilization this week" report, group Jobs by Assigned Tech and sum the Total column. The result shows revenue per tech.

For an "estimate aging" report, sort the Estimates list by Sent Date ascending and filter Status to Sent. The oldest unconverted estimates float to the top.

Step 7: Save the Report

Click the blue Save Report button at the top right. Per HCP's Managing Reports doc, you'll be prompted to name the report. Use clear names ("Tech Utilization - Weekly", "Cold Estimates - 14+ Days").

Saved reports appear under All Reports in the left rail of the Reporting tab. Click the report name to re-run with current data. Edit filters and re-save as new if you want a variant.

You can also pin the report as a widget on a Reporting Dashboard. See our how to build a dashboard in Housecall Pro walkthrough for the dashboard side.

Step 8: Schedule and Share

MAX users can schedule reports for email delivery. From the saved report, click Schedule. Pick frequency (daily, weekly, monthly), recipients, and format (PDF or CSV).

Share with team members directly: open the report, click Share, pick the user role or specific employees. They'll see it in their All Reports view if their permissions allow.

What HCP Custom Reports Can't Do

This is where you decide whether the built-in tooling is enough.

Cannot join two entities. "Customers + their open estimates + their last call date" needs a three-way join. HCP doesn't support it. You build three reports and merge in Sheets.

Cannot pull data from outside HCP. Your Gmail inbox, CallRail call logs, Google Calendar, ad spend platforms, review sites are all invisible to the report builder. If your question requires "all leads from CallRail this month and their HCP status," you're exporting CSVs and reconciling manually.

Cannot compute custom KPIs that need formulas. Cost-per-acquired-customer by lead source. Profit per job after burdened labor and materials. Booking rate by hour-of-day. These all need either external data or math the report builder doesn't expose.

Cannot filter on negative conditions cleanly. "Customers without a job in the last 9 months" is doable through filters but clunky. "Estimates sent without any follow-up email in the next 7 days" is not natively answerable because HCP doesn't track outbound email correlation cleanly inside reports.

Cannot run ad-hoc text queries. A free-text question like "show me all customers in Tampa with two AC units who are on annual maintenance" needs structured tags. If you didn't tag them that way upfront, no report retrieves them.

A plumbing owner on the Housecall Pro Facebook user group wrote in 2024: "I asked support how to build a report showing every customer who got a quote in the last 90 days but never had a job booked. Took 3 manual exports and a vlookup in Excel. That's not a report builder, that's homework."

Text Clint: "list HCP customers tagged 'maintenance' with no visit in 9 months"

Three Custom Reports Every $1M+ Shop Should Have

Not theory. These three reports answer questions that drive the most decisions and most revenue at the $1M to $10M tier.

Report 1: Cold Estimates Over 14 Days.

  • Entity: Estimates
  • Filter: Status = Sent, Sent Date older than 14 days, no won/declined status update
  • Columns: Customer Name, Estimate Total, Sent Date, Days Since Sent, Assigned Tech
  • Sort: Days Since Sent descending
  • Use case: Weekly Monday review for follow-up triage. See our find every cold quote in your CRM playbook for the full motion.

Report 2: Top 100 Customers by Lifetime Value.

  • Entity: Customers
  • Filter: Customer Type = Residential, Total Lifetime Value descending
  • Columns: Name, Email, Phone, Last Service Date, Total Lifetime Value, Active Service Plan, Tags
  • Sort: Lifetime Value descending, limit 100
  • Use case: VIP retention list, referral asks, premium plan upsells. See find your top 100 customers in your CRM.

Report 3: Customers With No Visit in 9 Months.

  • Entity: Customers
  • Filter: Last Service Date older than 9 months, Customer Type = Residential
  • Columns: Name, Phone, Last Service Date, Months Since Last Visit, Tags, Lifetime Value
  • Sort: Lifetime Value descending
  • Use case: Reactivation campaigns. See our customer reactivation from CRM playbook.

These three plus a tech utilization report and a lead source ROI report cover most owner-level questions natively.

Text Clint: "build me the cold estimates over 14 days report from HCP and rank by recoverable revenue"

When to Stop Fighting the Report Builder

Three signals it's time to move data work outside HCP:

  1. You're exporting the same CSVs to Sheets every week.
  2. The questions you actually need answered cross HCP plus inbox plus calls plus calendar.
  3. Your weekly reporting prep takes more than 90 minutes.

At that point you have three options: Pay for a BI tool like Looker or Power BI, hire a part-time analyst, or layer a system like Clint that reads HCP plus your other sources and lets you ask questions in plain text. For the broader fit signals, see our 8 signs you've outgrown your contractor CRM.

Sources

Frequently Asked Questions

6 questions home service owners actually ask about this.

  • 01Can I build custom reports on Housecall Pro Essentials?

    No. The report builder is gated to MAX. Essentials gets standard reports and CSV exports of list views, but not the saved-and-pinned custom report flow.

  • 02How many custom reports can I save in Housecall Pro?

    There's no documented hard cap. The constraint is dashboard widgets (20 per dashboard), not the number of saved reports.

  • 03Can I export a Housecall Pro custom report to CSV?

    Yes. Open the report, click Actions > Export. You'll receive an email with the CSV. Per HCP's export docs, large exports come as separate file downloads.

  • 04Why can't I see lead source on my Jobs report?

    Lead Source has to be configured in Settings > Lead Sources first, and required on every new lead/job. If your team didn't fill it in historically, the column will show empty values for those rows. There's no retroactive auto-attribution inside HCP.

  • 05Can custom reports show data from CallRail or Gmail?

    No. Housecall Pro custom reports only pull from data inside HCP. Cross-system reporting needs an external tool that ingests both sources.

  • 06How do I report on tech utilization in Housecall Pro?

    Build a Jobs report grouped by Assigned Tech, filter by Service Date this week, count the rows or sum the Total column. For burdened labor cost or actual hours worked, you'll need Time Tracking data, which exports separately.

See Clint in action

Clint is the pre-built AI for home service shops. Connect your CRM, email, and phone system in minutes and the agents run on your real data.