Home  /  Blog  /  Real-Time Job Costing
ServiceTitan · Job Costing · Real-Time Margin

How Do You Catch a ServiceTitan Job Losing Money While It's Still Open?

Top Builder AI Published August 16, 2026 Last updated: August 18, 2026 ~12 min read HVAC · Plumbing · Electrical · Roofing
A contractor checking a job's budget against actual spend on a laptop while a crew works in the background

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.

FeatureServiceTitan's own claimWhat its own docs actually require
Budget vs Actual tableUpdates in real time as you work through the projectOnly available with Project Management, a separate feature set
Turning it onNot addressed on the feature pagesAccount configuration required; contact Technical Support
Actual cost figuresReal-time visibility into every expenseOnly post once an invoice, bill, or return is generated
Technician labor actualReal-time labor costHourly rate × paid hours, gated on payroll running
WIP reportReal-time view of business health (marketing)A report you manually run with an "as of" date you set
Overrun alertsNot claimedNo 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.

ToolIts own claimSource
KnowifyShows where a job stands before it's too late to act, real-time cost updatesknowify.com/job-costing-software
BuildertrendReal-time view of estimated cost, actual spend, and profitability by cost codebuildertrend.com/help-article
DaptReal-time labor, equipment, and material cost visibility to prevent overrunsdapt.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.

Illustrative walkthrough: one $18,500 fixed-price bathroom remodel, mid-project
Where the job actually is
Contract value (fixed price)$18,500
Schedule progress60% complete
Material budget used so far78%
Two change-order hours loggedNot yet billed
What nothing is currently comparing
60% done vs. 78% of material budget spentNo system flags this gap on its own
Unbilled change-order hoursStill committed, not actual, until invoiced
When someone finds outWhenever the invoice posts, weeks later
The 60-versus-78 gap is visible today to anyone who thinks to compare those two numbers by hand. Nothing in the standard flyout, and nothing described in ServiceTitan's own Budget vs Actual or WIP documentation, surfaces that comparison on its own.

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.

1
Read committed and actual cost together Both cost states from ServiceTitan's own data, checked side by side instead of only seeing whichever one has posted so far.
2
Track schedule progress against spend Compares how far along a job is against how much of its budget or material allowance is gone, the exact comparison nothing in ServiceTitan does automatically.
3
Recompute labor with burden as it's logged Doesn't wait on payroll to run before counting a technician's hours toward the job's real cost trajectory.
4
Flag drift past tolerance while the job is open A job trending over budget gets surfaced for review while there's still time to swap a supplier, write a change order, or have the scope conversation.
5
A human decides the next move The agent never edits a ServiceTitan job cost record, a budget, or an invoice. It surfaces the number and the reason; a person acts on it.
A note on the "$0 install" wording

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 →

Frequently asked questions

How do you catch a ServiceTitan job losing money while it's still in progress?
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 spending money in the field.
Does ServiceTitan have a real-time job costing feature at all?
Yes, and it is real, not vaporware. ServiceTitan's own help documentation for the Budget vs Actual table states the table updates in real time as you work through a project and generate actuals. The catch is scope: that table lives only inside Project Management, a feature set most standard residential and light-commercial ServiceTitan accounts do not have turned on.
What does ServiceTitan's Budget vs Actual table require to turn on?
Account configuration, done by ServiceTitan's own support team, not a setting you flip yourself. ServiceTitan's own documentation for project financials states plainly that account configuration is required to use this feature and directs the user to contact Technical Support for details, and separately that Budget vs Actual has to already be enabled before the visual project financials will show at all.
Does the standard ServiceTitan Job Costing tool give you mid-job budget visibility?
No. The standard Job Costing flyout most ServiceTitan shops use is a different feature entirely from Budget vs Actual, and ServiceTitan's own documentation states it locks once an invoice is posted and exported, built from the invoice rather than tracked live against a budget. A shop without Project Management turned on has no real-time cost table at all, only the after-the-fact flyout.
What does real-time actually mean if the numbers only post when someone bills or gets billed?
It means the table itself refreshes instantly, but the inputs feeding it do not arrive instantly. ServiceTitan's own documentation states actuals start calculating when you generate an invoice, receive a bill, or issue a return, and that technician labor actual cost is the hourly rate multiplied by paid hours worked, not clocked hours. A crew burning materials or hours in the field today will not show up as an actual cost until that paperwork clears, real time about entry, not about the work itself.
Is ServiceTitan's WIP report a live dashboard you can check anytime?
No. ServiceTitan's own documentation for the Work in Progress report describes a report you manually run: navigate to Reports, click WIP, set a Project start date and an As of date, then click Run Report. It is a point-in-time snapshot generated on demand, not a dashboard that sits open and updates as costs land, and nothing in the documentation describes it refreshing on its own.
Does ServiceTitan automatically alert you when a job is trending over budget?
Not based on its own documentation. The Budget vs Actual table shows columns like percent of budget used, variance, and balance to finish with color coding for negative or over-budget values, but nothing in ServiceTitan's own help docs or its Project Management feature page describes a proactive alert or notification firing when a job crosses a budget threshold. Someone has to open the table and look.
Are ServiceTitan's "fewer overruns" stats backed by a named study?
No. ServiceTitan's own blog post on real-time job costing states that contractors using integrated job costing software report 25 percent fewer budget overruns and that projects with committed cost tracking have 15 percent fewer overruns, but cites no external survey, study, or named source for either figure anywhere in the piece. Treat both as ServiceTitan's own marketing claims about its own product, not independently verified numbers.
What is the difference between committed cost and actual cost for catching an overrun early?
Committed cost is money already tied up in an approved purchase order the vendor has not billed yet; actual cost is money already billed. A job can look on-budget mid-project purely because real, already-incurred costs are still sitting as committed rather than actual, so watching actual cost alone misses spend that has already happened but has not been invoiced, which is exactly the gap a mid-job check needs to close.
Are there third-party tools built specifically for real-time, in-progress job costing?
Yes, and their marketing is built entirely around this exact gap. Knowify's own site states most contractors find out a job lost money after it is done and positions its tool to show where a job stands before it is too late to act. Buildertrend's own help documentation describes its Job Costing Budget as a real-time view of estimated costs, actual spend, and profitability at the cost-code level. Dapt's own HVAC job costing page promises real-time visibility into labor, equipment, and material costs to prevent overruns. None plug natively into ServiceTitan.
What does a mid-job cost overrun look like in practice?
This example is illustrative, not a client result. A fixed-price $18,500 bathroom remodel is 60 percent through its schedule but has already used 78 percent of its material budget after a supply substitution, and two change-order hours have been logged but not yet billed. Nothing forces anyone to compare those two numbers until the invoice posts weeks later, by which point the remaining budget for finish materials is already gone.
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 for an invoice or a manually run report, recompute the job's real cost-to-budget position against a set tolerance, and flag drift while the crew is still on site so a dispatcher or PM can act before more materials get bought or more hours get logged against a fixed-price job. It never edits a ServiceTitan record; it surfaces the number and the reason.
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 before. The agent reads the same committed and actual cost data ServiceTitan already tracks, whether or not Project Management is enabled on a given account, and surfaces the projected margin while the job is still open, closer to the always-current view ServiceTitan's own marketing promises than what a standard account without Project Management delivers on its own.
Is this a live, self-serve dashboard I can connect to today?
The mid-job margin recomputation logic is real, built and tested code inside the Financial and Pricebook agents. It ships today as part of a Teardown and Install engagement, configured against a shop's actual ServiceTitan committed costs, actual costs, and payroll data, not as a blind self-serve signup a contractor turns on alone.
What's the fastest way to check if my shop has real-time job-cost visibility right now?
Open a job that is still in progress and see whether a Budget vs Actual table appears at all. If it does not, Project Management is not turned on for that account and there is no real-time cost table today, only the standard Job Costing flyout that locks at invoice. If it does appear, check how many committed costs on that job have not yet moved to actual, that gap is exactly what a mid-project spend could be hiding. A fit call walks through what that same check finds against your real ServiceTitan data.