Skip to content

Do you need to link materials in ServiceTitan if your prices are static?

The most common reason shops skip linking materials to services sounds airtight: “My price is static, I set it by hand, so I’ll just include the parts in the price. Why link anything?”

It is half right, and that half is the trap. The objection confuses price with cost. In ServiceTitan those are two different numbers, and linking materials is how the system gets the cost one. A static price tells ServiceTitan what the customer paid. The materials you link tell ServiceTitan what the job cost. You need both, and linking is how ServiceTitan gets the second one.

Is this you? Worth six minutes if your book has services priced statically with no materials linked, if your gross margin in ServiceTitan looks suspiciously healthy, or if you have ever thought about moving to dynamic pricing “later.”

Jump to: price vs cost · dynamic mode · static mode · the caveat · what to do

The mix-up: price is not cost

Every service in ServiceTitan carries a price the customer sees. Behind it, the job has a cost: the parts and equipment it actually consumes. Linking a material to a service is how ServiceTitan captures that cost, and it does so no matter which pricing mode you run.

Here is the line straight from ServiceTitan’s pricebook documentation, and it settles the argument: “Material costs are not automatically added to the service price but are used to calculate prices in the Price Setup Wizard.” And: “When you add the service to an invoice or estimate, all linked material costs are also added.”

Read that twice. Linking does not touch what the customer pays. It attaches the real parts to the job so ServiceTitan knows the cost.

Two numbers. You need both. STATIC PRICE What the customer pays A number you set by hand. Linking never changes it. LINKED MATERIALS What the job costs The parts on the job. Feed costing, restock, dynamic. Unlinked, ServiceTitan sees the price, not the cost.

Dynamic pricing: linking is mandatory

If you run dynamic pricing, this is not a preference. The price is built from the linked materials. ServiceTitan’s dynamic price is:

(Billable Hours x Labor Rate) + (Material Cost x Markup) + (Equipment Cost x Markup) + Surcharges

Dynamic pricing only prices the materials that are linked to the service as sub-items. So an unlinked material means the entire Material Cost x Markup term is missing from the formula. You undercharge, and you never capture the markup, on every job that uses that part. There is no “bake it into the price” option here, because there is no fixed price to bake it into. The number is calculated, and it is calculated from the linked materials.

Static pricing: the belief is half right

Now the static case, where the objection lives. The believer is right about one thing and blind to three others.

Right: the customer price is a fixed number you set, and linking does not change it. ServiceTitan confirms material costs are not automatically added to the service price. If all you care about is what the invoice says, you can indeed set a price and move on.

Blind: linking was never about the price. It attaches the parts to the job. Skip it in static mode and here is what quietly stops working.

True job costing and margin. Job-costing reports read the material cost that lands on the invoice, and that cost comes from the linked materials. With nothing linked, no materials land on the job, so ServiceTitan sees your revenue and records almost no cost. Your gross margin reads inflated and fake. You are flying blind on the one number that tells you whether the job made money.

Inventory and truck replenishment. Straight from ServiceTitan: “As technicians use materials on invoices, these items automatically appear under the Materials Used tab in Truck Replenishment. Use the Materials Used list to prepare POs.” That whole restock-and-PO engine feeds off materials landing on the invoice, which come from linked materials. With nothing linked, there is nothing to replenish against, and purchasing goes dark. This is true in static mode and dynamic mode alike.

Tech time and consistency. Linked materials drop onto the job automatically when the service is sold. Unlinked, a tech either hand-adds every part on every job, forever, or skips them, which breaks the two points above.

Future-proofing. Linked materials are what the Price Setup Wizard and dynamic pricing both build from. Stay unlinked and the day you decide to move that book to dynamic, you are rebuilding it from scratch.

The honest caveat

There is one case where the loss shrinks. If a shop genuinely does not use ServiceTitan for inventory or job-costing, say they cost and count everything in QuickBooks, the practical damage is smaller. ServiceTitan even notes that truck replenishment is intended for businesses that do not use QuickBooks for inventory.

But even then, the shop has given up in-ServiceTitan margin visibility on every job, and it has locked itself out of dynamic pricing without a rebuild. For anyone who wants to run their business on their own numbers inside ServiceTitan, “I’ll bake it into the static price” means you can see the top line and are blind on the cost line.

What to do about it

You do not have to link a whole book by hand to test this. Pull your ServiceTitan export and look at how many of your services have no materials linked to them. If your priced services have nothing attached, that is the gap.

The free Pricebook Health Audit reads your export and shows you which services are priced with no materials behind them, no login, nothing uploaded. When you want the materials actually linked, the ServiceMaterialLinks Builder reads the same export, works out which materials each service should carry, and builds the ServiceMaterialLinks for you, so you get true job costing without hand-entering parts on a thousand services. And if the book needs more than that, the done-for-you build is where a book gets rebuilt to sell and cost correctly.

If dynamic pricing is where you are headed, linking is step one, not an afterthought. See the guide to ServiceTitan dynamic pricing for how the rest of it fits, and remember the rate underneath it all has to be real, which is what your loaded labor rate is for.

Common questions

Do I need to link materials if I use static prices? Yes. The static price is what the customer pays and linking does not change it, but linked materials are what put the part’s cost on the job, and that cost is what job costing, margin, and truck replenishment all read.

Does linking change what the customer pays? No, not in static mode. ServiceTitan: “Material costs are not automatically added to the service price.”

Why does dynamic pricing need it? The price is built from the linked materials: (hours x rate) + (material cost x markup) + (equipment cost x markup) + surcharges. Unlinked, and the material-cost term is missing.

What do I lose unlinked? Job costing and margin accuracy, truck replenishment and POs, tech time and consistency, and an easy move to dynamic later.

What if I cost everything in QuickBooks? The loss is smaller, but you still have no in-ServiceTitan margin visibility and you would rebuild the book to go dynamic.

Sources

ServiceTitan documentation

← All field notes

Want this done for your shop?

We build ServiceTitan pricebooks as sales systems, not price lists. Start with an audit.

Audit my pricebook

Built for HVAC, plumbing and electrical shops running on ServiceTitan.