Reporting and dashboards
The Owner's Screen ServiceTitan Can't Draw Alone: Jobs, Revenue, Calls and Ad Spend Together
ServiceTitan has three kinds of report and three kinds of dashboard module. Owners still open a spreadsheet on Monday morning, because the one question they care about spans systems: what did last month's marketing actually buy?
November 2, 2026 · 10 min read
The short answer
ServiceTitan's built-in, custom and legacy reports cover jobs, revenue, technicians and campaigns, and custom dashboards hold report, KPI and visualization modules, depending on your package. A custom dashboard earns its cost when it joins ServiceTitan job and revenue data with ad spend, call tracking and website data that ServiceTitan never sees, read through the Reporting API within its limits.
On this page
- Monday, 7:15 a.m., and four tabs that refuse to agree
- Before you pay for a dashboard, open the ones you already own
- The numbers that live outside ServiceTitan's walls
- Reading ServiceTitan's data without breaking its rules or its limits
- A sample owner's dashboard, tile by tile
- HomeService WebApp: a command center built on ServiceTitan data
- How a dashboard build runs, from questions to first Monday
- Honest limits, prices, and when to skip the custom build
Monday, 7:15 a.m., and four tabs that refuse to agree
The ritual is familiar. ServiceTitan in one tab, Google Ads in another, the call tracking account in a third, and a spreadsheet in the fourth where someone copies numbers from the first three. The spreadsheet has a column called ROI that nobody remembers defining. The agency's monthly PDF reports clicks, impressions and a cost per lead calculated on leads ServiceTitan has never heard of.
None of these tools is wrong. Each one is right about its own slice. The trouble is that the owner's real questions cut across all of them: which campaign produced paid jobs, how fast the office answered the web leads it got, how many estimates are still open from the spring. That cross-cut is what a custom dashboard is for, and also the only good reason to build one. Everything else ServiceTitan may already do. The rest of the website connections are mapped on the ServiceTitan integration hub.
Before you pay for a dashboard, open the ones you already own
ServiceTitan's reporting is broader than most owners use. Here is what its help center documents as of November 2026.
- Built-in reports, which ServiceTitan describes as "pre-built reports included with ServiceTitan that track commonly used business metrics."
- Custom reports, built from report templates (ServiceTitan's word for datasets) with the columns, filters and layout you choose. The help center says creating them "is available only to customers on the Works package or Legacy/Non-Packaged customers."
- Legacy reports, the originals, which are "filterable but not customizable."
- Scheduled and exported reports, so the numbers arrive on a schedule instead of waiting to be looked up.
- Custom dashboards made of report modules, KPI modules that "Display up to six key performance indicators" from a report template, and visualization modules. Whether you can build them "is dependent on the ServiceTitan package you have."
- Rollup Reporting for Enterprise Hub customers, across every location's business units.

There is also Atlas, ServiceTitan's AI assistant. ServiceTitan's October 2026 blog says it "pulls from your existing reports, including custom reports," and its press release says owners can ask it "about sales performance, revenue or why a number moved." The same blog says Atlas is "in closed alpha for admins only" with pricing not yet set. Worth watching; not yet something to plan a quarter around.
The numbers that live outside ServiceTitan's walls
ServiceTitan knows the job, the invoice, the technician and, with Marketing Pro and call tracking in place, a good deal about the campaign. It does not know what happened before the customer became a record. That is the data a custom dashboard adds, and the table shows where each piece comes from.
| Where it lives | How it reaches the dashboard | |
|---|---|---|
| Jobs, invoices, revenue, memberships | ServiceTitan | Export and transactional APIs, or report data through the Reporting API |
| Campaign names and costs | ServiceTitan campaigns; Marketing Pro pulls Meta cost and maps campaigns | The Marketing API, which also accepts campaign costs posted from outside |
| Ad clicks, impressions and spend by keyword | Google Ads and Microsoft Ads | Each ad platform's own reporting |
| Calls, sources and keywords | Your call tracking provider; CallRail syncs calls into ServiceTitan | The call tracking platform, matched to ServiceTitan calls |
| Web sessions, form starts and abandoned forms | Your website's own server and analytics | The site's logs, which a custom build controls |
| Time from web lead to first response | Split between the website and ServiceTitan | The website's timestamp joined to the booking's |
| Organic search queries | Google Search Console | Search Console's own reporting |
If the click IDs never reached ServiceTitan in the first place, no dashboard can join them afterward. That plumbing is on the marketing attribution guide and the call tracking guide, and it comes first.
Reading ServiceTitan's data without breaking its rules or its limits
ServiceTitan publishes a Reporting API, and its OpenAPI document is specific. It lists report categories and the reports in each, describes a report's input parameters and output fields, and returns its data. Since July 2026 the long-running version is the one to use: a query returns inline if it finishes in about 10 seconds, or a token to poll if not, with up to 25,000 rows a page. Report columns may change, so field names come back with the data for checking. Reporting allows "1 of the same report per minute per tenant," while other APIs allow 600 calls per 10 seconds.
Two more facts shape the design. Export APIs, which page through jobs and invoices in bulk, show a change 15 minutes after it happens unless recent changes are requested. And ServiceTitan's API Terms of Use, last updated April 15, 2026, say in section 5.2 that you "must not store or cache any Content obtained from the APIs for longer than 24 hours, except to the extent expressly permitted by these Terms or the Documentation," and section 5.4 requires deleting it when a customer disconnects.
A sample owner's dashboard, tile by tile
This is an illustration of the tiles we start with for an HVAC or plumbing shop. The numbers are yours to fill in; the point is which questions each tile answers and where the data comes from.
Paid jobs by campaign
Completed, invoiced jobs grouped by the ServiceTitan campaign they carried. Clicks and leads sit beside them in smaller type, where they belong.
Revenue per marketing dollar
Invoice totals from ServiceTitan divided by spend from each ad platform, by month. ServiceTitan shows the transaction date while Google Ads dates a conversion to the ad impression, so the tile says which calendar it uses.
Calls that should have booked
ServiceTitan's Google Ads integration counts an unbooked call over 60 seconds that was not excused as a lead. Listed by campaign and CSR, they are the cheapest leads you will ever recover.
Speed to first response
Minutes from a web form or booking request to the first human reply, by hour of day. The after-hours column is usually the uncomfortable one.
Open estimates by age
Unsold estimates grouped by 0 to 30, 31 to 90 and 90-plus days, with the total value of each. The same idea runs HomeService WebApp.
Capacity in the next two weeks
Open capacity from ServiceTitan's capacity endpoint, which covers 14 days per request, set against booked jobs. It tells marketing when to push and when to pause.
For an HVAC company we usually add a membership tile: active members, renewals due and tune-ups booked, read from the memberships API. Our memberships guide covers that side, and the HVAC website guide explains how the site sells the plan in the first place.
HomeService WebApp: a command center built on ServiceTitan data
Our proof is a product, not a promise. HomeService WebApp is a contractor command center we redesigned. It pulls every open estimate, customer and overdue follow-up onto one screen, and its API layer "syncs jobs and estimates bidirectionally with ServiceTitan." Stripe runs its subscription billing, and an automated follow-up engine works the unsold estimates while the crew is out. The HomeService WebApp case study shows the screens.
The lesson we took from it applies to every dashboard: a screen that only displays numbers gets opened twice. A screen that lists the five estimates to call today, with a button to do it, gets opened every morning. Where it fits, we build the second kind. It is a web app, not a chart.
How a dashboard build runs, from questions to first Monday
- 1
Write the five questions
Not metrics: questions. Which campaign paid? Which hours do we lose leads? Each tile has to answer one of them.
- 2
Check what ServiceTitan already answers
Built-in and custom reports first. Anything they answer stays in ServiceTitan, and the dashboard links to it.
- 3
Map every outside source
Ad accounts, call tracking, the website, Search Console: who owns each login, and what each one can export.
- 4
Request read-only scopes
Your admin approves the app in Settings > Integrations > API Application Access. A dashboard needs to read, so we ask only to read.
- 5
Build against the integration environment
ServiceTitan customers can request an integration environment that holds a copy of their production data, so testing never touches live records.
- 6
Agree retention before launch
Which ServiceTitan figures are read fresh, which are kept and for how long, in writing, with section 5.2 of the API terms in view.
- 7
Review it together after a month
Tiles nobody used come off. Questions nobody asked at the start usually go on.
Honest limits, prices, and when to skip the custom build
- It is never perfectly live. Exports lag 15 minutes by default and a given report runs at most once a minute. For an owner's screen, that is plenty.
- It cannot attribute what was never captured. Calls without tracked numbers and forms without click IDs stay unattributed, however good the chart.
- Your package still matters. Custom reports and dashboards inside ServiceTitan depend on it, and API access is approved in your account.
- Report shapes can change. ServiceTitan says report columns may change, so a careful build checks field names on every run and alerts a person when one moves.
Portals, dashboards and web apps start at $575, depending on complexity, and are quoted after a free review; a two-system connection typically takes one to three weeks per our API integrations page. If the attribution plumbing is missing, conversion tracking setup comes first, and the Google Ads conversion guide explains why. New sites start at $1,500 on the web design pricing page. Not sure the data is even there? A free site audit answers that before anyone quotes a dashboard.
Questions contractors ask about ServiceTitan integration
Often, yes. ServiceTitan's report builder creates custom reports from templates, with your own columns, filters and layout, and custom dashboards hold report, KPI and visualization modules. ServiceTitan's help center says creating custom reports is available only on the Works package or to Legacy and Non-Packaged customers, so check your package with your Customer Success Manager first.
Yes. The Reporting API lists report categories and reports, describes each report's parameters and fields, and returns report data, with a long-running query version that returns a token to poll when a report takes longer than about 10 seconds. ServiceTitan allows one run of the same report per minute per tenant, and says report columns may change.
Start with paid jobs and revenue by campaign, revenue per marketing dollar, unbooked calls that should have booked, speed to first response on web leads, open estimates by age, membership renewals due and open capacity for the next two weeks. Each should answer a question you would act on this week, or it does not belong.
Close, not instant. ServiceTitan's export APIs show changes 15 minutes after they happen unless recent changes are requested, and the same report can run once a minute per tenant. Ad platforms and call tracking tools have their own delays. For an owner reviewing the week, that is current enough; for dispatch, use ServiceTitan itself.
ServiceTitan's API Terms of Use say content obtained from the APIs must not be stored or cached for longer than 24 hours, except where the terms or documentation expressly permit it, and must be deleted when a customer disconnects. We design dashboards around that clause and ask you to confirm with ServiceTitan what your account allows.
It may cover part of it. ServiceTitan says Atlas pulls from existing reports, including custom reports, and lets owners ask about revenue and why a number moved. As of its October 2026 blog, Atlas was in closed alpha for admins only with pricing not set. It does not hold your ad platform or website data, which is what a custom dashboard joins.
Kairos · AI chat and booking
Book the job while the visitor is still on the page
Kairos answers questions from your own services, hours and published prices, offers real open times and books the appointment in the chat, at 2 p.m. or 2 a.m. Today it books into a Google or Microsoft 365 calendar; booking straight into ServiceTitan is rolling out. Clio, its dashboard, shows which pages and ads turned into bookings.
Keep reading
- Attribution, case by caseThe Case of the Unattributed Furnace: Tracing Every ServiceTitan Job Back to What Paid for ItWhy "source: website" tells you nothing, how to tie every ServiceTitan lead to a campaign and its revenue, and a sample monthly report you can copy.
- Online bookingThe Customer Picked Thursday at 10. Does the Dispatch Board Know?ServiceTitan's Scheduling Pro or a custom booking flow on your own site: how each installs, tracks and shows availability, and when each one wins.
- Web formsThe Lead Nobody Has to Retype: Website Forms That Arrive in ServiceTitan WholeSend estimate, callback, contact and emergency forms to ServiceTitan as bookings with the source attached. Field map, spam filtering, retries, prices.
- Custom site, server-side linkIf a Visitor Can Read Your API Secret, So Can Everyone: Custom Next.js Sites That Book Into ServiceTitan From the ServerA custom Next.js site that sends bookings to ServiceTitan from its own server: credentials hidden, click IDs kept, pages fast. How it works, limits, prices.
- The developer programBefore Any Website Touches the ServiceTitan API, Someone in Your Office Clicks AllowHow the ServiceTitan API works for contractors: access and approval, the data families a website touches, no webhooks yet, and what a custom build takes.
- After-hours answeringAn AI Receptionist for ServiceTitan: What It May Book, and Who Takes Over When It Should NotAI that answers calls, texts and web chat and books into ServiceTitan: what ServiceTitan sells itself, what its April 2026 API terms allow, and the handoff.
- Everything in ServiceTitan IntegrationSee the section
See your marketing and your invoices on one screen
Tell us the questions you ask every Monday. We will show which ServiceTitan already answers and quote the dashboard for the rest.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.