The full walkthrough, on camera, straight from ServiceTitan's own docs, or the 53-second version below.
The 53-second version of the mid-job visibility gap below, straight from ServiceTitan's own docs.
Not from a report you run after the invoice posts, and not from the standard Job Costing flyout most residential and light-commercial shops use. ServiceTitan's own documentation confirms a genuinely real-time cost table exists, called Budget vs Actual, but it only appears inside the Project Management feature set, needs account configuration through ServiceTitan's own support team, and even then only updates as fast as someone enters an invoice, a bill, or a paid timesheet, not as fast as the crew is actually spending money in the field.
Two other pieces on this site already cover job costing on ServiceTitan: why the standard job-costing flyout goes stale after the fact, and seven checks to run before trusting a margin number once a job is closed. Both are about verifying a number after the work is done. This one is about a narrower, more urgent question: how do you know a job is going sideways while the crew is still on site, before more materials get bought or more hours get logged against a fixed-price contract, while there's still time to actually do something about it. The answer runs through ServiceTitan's own documentation for a feature most shops have never turned on.
Does ServiceTitan have anything that tracks cost in real time while a job is open?
Yes, and it's a real, documented feature, not a marketing exaggeration. ServiceTitan's own help article for the Budget vs Actual table states plainly that the table updates in real time as you work through a project and generate actuals, showing percent of budget used, variance, balance to finish, and a forecasted cost at completion. The problem is scope: that same article states the Budget vs Actual section is only available with Project Management, a distinct feature set layered on top of standard ServiceTitan Jobs, built for the platform's commercial and construction side.
A shop running ordinary residential or light-commercial Jobs, which is most of the ServiceTitan install base, does not see this table anywhere in their account. What they see instead is the standard Job Costing flyout, the one covered in depth in the companion piece on this site, which is built from the invoice and locks once that invoice posts and exports. Real-time cost tracking exists inside ServiceTitan. It is just not the tool most contractors are actually looking at.
What does it take to turn Budget vs Actual on?
More than a settings toggle. ServiceTitan's own documentation for project financials states directly that account configuration is required to use this feature and instructs the user to contact Technical Support for details, and separately that Budget vs Actual has to already be enabled before the visual project financials view will show at all. That's a support ticket and a setup process standing between a shop and the real-time table ServiceTitan's own docs describe, not a checkbox a dispatcher flips on a Tuesday afternoon.
The same documentation explains how the underlying figures get built once configured: Contract Value is the total price and tax of all sold estimates, Actual Billed is the sum of income items on invoices minus retainage, and Total Budgeted Expense is the sum of estimated costs. Real, usable numbers, once someone has done the setup work to expose them.
What does "real time" actually mean if the numbers only post when someone bills or gets billed?
It means the table refreshes instantly, but the inputs feeding it do not arrive instantly. ServiceTitan's own documentation for Budget vs Actual states that actuals start calculating when you generate an invoice, receive bills, or issue returns, and that the actual value for technician labor is calculated by taking the hourly rate and multiplying it by paid hours worked, not clocked hours. So a technician's time on a job today does not become an actual labor cost until payroll runs and pays it, and a material purchase does not become an actual cost until someone enters the bill.
| Feature | ServiceTitan's own claim | What its own docs actually require |
|---|---|---|
| Budget vs Actual table | Updates in real time as you work through the project | Only available with Project Management, a separate feature set |
| Turning it on | Not addressed on the feature pages | Account configuration required; contact Technical Support |
| Actual cost figures | Real-time visibility into every expense | Only post once an invoice, bill, or return is generated |
| Technician labor actual | Real-time labor cost | Hourly rate × paid hours, gated on payroll running |
| WIP report | Real-time view of business health (marketing) | A report you manually run with an "as of" date you set |
| Overrun alerts | Not claimed | No threshold alert described; color-coded columns you check yourself |
Every real-time claim traces to a real feature, and every one of those features is gated: behind a module, behind a support-configured setup, or behind someone filing paperwork before the "real-time" number reflects the work that already happened.
Is ServiceTitan's Work-in-Progress report a live dashboard you can check anytime?
No, and this is a distinct feature from Budget vs Actual worth separating out. ServiceTitan's own help documentation for the WIP report walks through generating it: go to Reports, click All Reports, click WIP, set a Project start date and an As of date, then click Run Report. That's a manually triggered, point-in-time export built around the percentage-of-completion accounting method, useful for month-end revenue recognition, not a dashboard sitting open that refreshes as the crew works.
ServiceTitan's own marketing describes the WIP report as invaluable for getting a real-time view of financial health for owners running many jobs at once. The documentation for how it's actually generated tells a narrower story: it's real time in the sense that you can run it whenever you want, not in the sense that it's watching your jobs and telling you something changed.
Does ServiceTitan automatically alert you when a job is trending over budget?
Nothing in ServiceTitan's own documentation describes a proactive alert. ServiceTitan's own Project Management feature page promises real-time visibility into every expense to keep a project on budget, and a Project Portfolio view billed as giving real-time insights on which projects require attention. Nowhere on that page, and nowhere in the Budget vs Actual help article, is there a described notification, email, or push alert that fires when a job crosses a set budget threshold. The visual indicator is color-coding on the table itself: someone still has to open the project and look at it.
That distinction matters because "requires attention" is a description of a screen, not an event. A dispatcher or project manager with fifteen jobs open at once has to actively check each one's Budget vs Actual table to catch drift, rather than getting told which job needs a look.
Are ServiceTitan's own "fewer overruns" numbers backed by a named study?
No, and this is worth stating plainly because it's easy to miss. ServiceTitan's own marketing blog post on real-time job costing states that "contractors using integrated job costing software report 25% fewer budget overruns" and that "projects with committed cost tracking have 15% fewer overruns." Neither figure is attributed to an external survey, a named research firm, or a dated study anywhere in that post. Both are ServiceTitan's own marketing claims about the value of its own product category, not an independently verified result. It's a real, useful post for describing how the dashboard is meant to work, three data streams (labor from mobile time entries, materials from purchase orders, subcontractor costs from invoices), just not one to cite as outside evidence.
What is the difference between committed cost and actual cost, and why does it matter mid-job?
Committed cost is money already tied up in a purchase order a vendor hasn't billed yet. Actual cost is money already billed. A job can look on-budget mid-project purely because a real, already-incurred expense is sitting as committed rather than actual, and Budget vs Actual, even when it's turned on and current, only counts an expense as actual once the bill lands. Watching actual cost alone misses spend that has already happened in the field but hasn't been invoiced yet, which is exactly the blind spot that lets a job drift for weeks before anyone notices.
This is also where the standard, non-Project-Management side of ServiceTitan and the Projects side genuinely differ: committed-versus-actual tracking is scoped to Projects, so a shop running standard Jobs doesn't get this view at all, on top of not having Budget vs Actual in the first place.
Why does this matter more on materials-heavy or fixed-price jobs?
Because the two most common ways a job goes over budget both happen mid-project, not at closeout: a materials substitution or price change burns through the budgeted allowance faster than planned, or a fixed-price job runs longer than estimated and keeps billing labor hours against a contract value that doesn't move. Either one is fixable if caught while the crew still has work left to do, a supplier can be swapped, a change order can be written, a scope conversation can happen with the customer. Neither is fixable once the invoice has already posted and the number is just a postmortem.
Are there third-party tools built specifically for this exact gap?
Yes, and their own marketing is built entirely around it, which is itself evidence the gap is real and not unique to ServiceTitan. Knowify's own job-costing page states directly: "Most contractors find out a job lost money after it's done. Knowify shows you where every job stands before it's too late to do anything about it," with project costs said to update on one screen in real time as they're entered from the field, the office, or QuickBooks. Buildertrend's own help documentation describes its Job Costing Budget as a central hub giving "a clear, real-time view of estimated costs, actual spend, projected costs, and profitability," tracked at the cost-code level as expenses come in from purchase orders and change orders. Dapt's own HVAC job-costing page promises "real-time visibility into labor hours, equipment usage, and material costs to prevent overruns," pulling technician hours directly from time-tracking tools into the job.
| Tool | Its own claim | Source |
|---|---|---|
| Knowify | Shows where a job stands before it's too late to act, real-time cost updates | knowify.com/job-costing-software |
| Buildertrend | Real-time view of estimated cost, actual spend, and profitability by cost code | buildertrend.com/help-article |
| Dapt | Real-time labor, equipment, and material cost visibility to prevent overruns | dapt.tech/hvac-job-costing-software |
None of these three plug natively into ServiceTitan, so running one alongside it means a second system a dispatcher or PM checks by hand, not a native view inside the platform already open all day.
What does this look like on one real job?
The example below is illustrative, built to show the mechanism, not a client result.
| Contract value (fixed price) | $18,500 |
| Schedule progress | 60% complete |
| Material budget used so far | 78% |
| Two change-order hours logged | Not yet billed |
| 60% done vs. 78% of material budget spent | No system flags this gap on its own |
| Unbilled change-order hours | Still committed, not actual, until invoiced |
| When someone finds out | Whenever the invoice posts, weeks later |
How does Top Builder AI catch a job going over budget while it's still open?
The Financial and Pricebook agents pull ServiceTitan's committed costs, actual costs, and paid-hours labor data continuously rather than waiting on an invoice to post or someone to manually run a report, recompute the job's real cost-to-budget position against a configured tolerance, and flag drift while the crew is still on site, whether or not Project Management and Budget vs Actual are even turned on for that account.
This gap is the same one ServiceTitan's own Project Management feature is built to close, and where it's already turned on and configured, that native table keeps doing its job. This method exists for the much larger share of accounts where it isn't turned on, or where committed-versus-actual and schedule-versus-spend still need to be compared by hand.
Does this replace ServiceTitan's Projects module or Budget vs Actual table?
No. ServiceTitan stays the system of record for the job, the budget, and the invoice. Where Project Management is turned on and configured, its Budget vs Actual table keeps working exactly as it does today. The Financial and Pricebook agents read the same committed and actual cost data ServiceTitan already tracks, whether or not that module is enabled, and surface a projected margin while the job is still open, closer to the always-current view ServiceTitan's own marketing describes than what a standard account without Project Management delivers on its own.
- No edited records. ServiceTitan's job cost data stays exactly as your team enters it.
- No invented numbers. Committed costs, actual costs, and schedule progress come from your real ServiceTitan data, never a guess presented as fact.
- No blind self-serve signup. Delivered as part of a Teardown and Install, configured against your actual ServiceTitan committed cost, actual cost, and payroll data.
- Works with or without Project Management. The comparison runs on the same underlying job data ServiceTitan already stores, whether or not that module is turned on for your account.
Find out if your shop even has the real-time table turned on
Open a job in progress and see whether a Budget vs Actual table appears at all. A fit call walks through what that check, and the committed-versus-actual gap behind it, finds against your real ServiceTitan data.
Book a fit call →