How to See Monthly Revenue by Job Type in Your Home Service CRM
Revenue by job type is the report most owners want and almost no CRM produces natively. Here is how to pull it in Jobber, Housecall Pro, ServiceTitan, and Workiz.
Key takeaways
- Revenue by job type requires consistent job type tagging in your CRM. If job types are not tagged consistently, the report is meaningless.
- ServiceTitan produces revenue by job type natively. Jobber, Housecall Pro, and Workiz require a CSV export and a pivot table.
- The most useful version of this report separates service/repair revenue from installation/replacement revenue from maintenance agreement revenue
- A shift in service mix (job type revenue percentages changing month over month) often predicts margin changes before they show up in the P&L
- Revenue by job type combined with gross margin per job type tells you which services are worth growing and which are not
Contents
- 01Why revenue by job type matters
- 02How to pull revenue by job type in ServiceTitan
- 03How to pull revenue by job type in Housecall Pro
- 04How to pull revenue by job type in Jobber
- 05How to pull revenue by job type in Workiz
- 06Setting up job types for clean reporting
- 07How Clint Answers This Without an Export
- 08Sources
- 09Frequently Asked Questions
"What's our revenue by service type this month?" This is the question that exposes the gap between what your CRM can answer and what your business needs to know. Revenue by job type is not a complex analysis. It is a basic grouping. And yet, most home service CRMs do not surface it without a data export.
Here is the exact process in each major CRM and why the report matters.
Why revenue by job type matters
A flat revenue number is information. Revenue by job type is intelligence. The same $180,000 in monthly revenue looks completely different when broken down:
Scenario A:
- Service/repair: $148,000 (82%)
- Installation/replacement: $22,000 (12%)
- Maintenance agreements: $10,000 (6%)
Scenario B:
- Service/repair: $90,000 (50%)
- Installation/replacement: $78,000 (43%)
- Maintenance agreements: $12,000 (7%)
Scenario A has a healthy service base but is under-converting on installations. Scenario B has more installation revenue (likely higher-margin) but is dependent on job-by-job bookings with less recurring revenue cushion. Same total. Very different businesses.
Month-over-month changes in this mix tell you things before the P&L does. If installation revenue drops 30% in February, you do not need to wait for the P&L to know something changed. You can investigate before it affects cash flow.
How to pull revenue by job type in ServiceTitan
ServiceTitan produces this natively through the Jobs report.
- Go to Reports → Jobs.
- Set the date range to the current or prior month.
- Group by "Job Type" or "Business Unit."
- Sum "Revenue" per group.
- Export or view in-report.
ServiceTitan's Business Unit grouping gives you the highest-level split (Residential vs. Commercial, HVAC vs. Plumbing if you track by trade). Job Type gives you more granular breakdown (Tune-up, Diagnostic, Equipment Install, etc.).
Text Clint: "What was my revenue by job type last month?"
How to pull revenue by job type in Housecall Pro
Housecall Pro does not produce revenue by job type in its native reports as of 2026. The standard approach:
- Go to Reports → Jobs.
- Set the date range.
- Export to CSV.
- In the CSV, look for the "Job Type" or "Service" column.
- Open in Excel or Google Sheets.
- Create a pivot table: rows = Job Type, values = Sum of Invoice Amount.
This takes 10 to 15 minutes once you have the export. The blocker is job type consistency: if your techs sometimes choose "Other" or leave the job type blank, the pivot table will have an inflated "Other" or "Blank" category.
How to pull revenue by job type in Jobber
Same approach as Housecall Pro: CSV export + pivot table.
- In Jobber, go to Reports → Job Summary or Revenue Report.
- Set the date range.
- Export to CSV.
- Look for the "Job Type" column.
- Pivot table: rows = Job Type, values = Sum of Total.
Jobber's job type field is configured in Settings → Work Orders → Job Types. If job types were not configured or are not being used consistently by techs, this column will be mostly blank or "Default."
How to pull revenue by job type in Workiz
- Go to Reports → Jobs.
- Filter by date range.
- Export to CSV.
- The export includes "Job Category" or "Job Type" depending on your Workiz configuration.
- Pivot table in Excel or Google Sheets.
Setting up job types for clean reporting
Before the report is useful, you need clean job type data. Steps:
Configure a closed list of job types. In Jobber, go to Settings → Work Orders. In Housecall Pro, go to Settings → Job Types. In ServiceTitan, go to Settings → Operations → Job Types. Create 6 to 12 job types that cover your service mix without being so granular that techs have to think too hard about which to choose.
A practical list for HVAC:
- Tune-up / Preventive Maintenance
- Diagnostic / Service Call
- Repair (parts replacement)
- Equipment Installation (new system)
- Equipment Replacement (swap existing)
- Duct Work
- Other
Train techs and office staff on which job type to select. The decision should be clear enough that two different people would choose the same option for the same job.
Audit quarterly. Pull the job type distribution monthly. If "Other" is above 10% of jobs, investigate why techs are landing there. Retrain or add a job type that covers the gap.
For how this report connects to margin analysis see job profitability for home services. For the full CRM reporting framework see home service CRM reporting.
How Clint Answers This Without an Export
Revenue by job type in Jobber or Housecall Pro requires a CSV export and a pivot table. The process takes 10 to 15 minutes once you have clean job type data. ServiceTitan produces it natively but still requires navigating to the right report.
Text Clint the question directly. "What was my revenue by job type last month?" returns the breakdown from your connected CRM in seconds. Ask "which job type had the highest revenue growth month over month?" and Clint runs the comparison without a spreadsheet.
Sources
Frequently Asked Questions
4 questions home service owners actually ask about this.
01Why can't Jobber show me revenue by service type directly?
Jobber's built-in revenue reports show totals by period, by technician, and by client. They do not group by job type natively because the job type data is inconsistently populated in many Jobber instances, which would make the report misleading. Once your job types are consistently populated, the CSV export + pivot table approach gives you the same result in about 15 minutes.
02How granular should my job types be?
The right level of granularity is where you would make a different business decision based on the split. "Service calls" vs. "installs" is a business decision (service is high-margin, installs have higher revenue but lower margin percentage). "3-ton AC install" vs. "4-ton AC install" is not a business decision. Keep job types at the level where knowing the split changes what you would do next.
03Can I see revenue by job type and by technician at the same time?
In ServiceTitan, yes. In Jobber and Housecall Pro, you need a pivot table with two dimensions: job type and technician. This shows which technicians are doing which types of work and generating which revenue. Useful for identifying whether a specific technician is only being assigned service calls (by design or by accident) and missing out on higher-revenue installs.
04What do I do when one job type dominates my revenue?
Depends on whether that is intentional. If your business is 90% service calls by design (you are a service-focused HVAC company that subcontracts installs), that is strategic. If you wanted to grow installs but 90% of revenue is still service, the install conversion process is the gap to address. Revenue by job type tells you the outcome. Understanding what you want that outcome to be is the strategic question.
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.