How to export your ServiceTitan pricebook
To export your ServiceTitan pricebook, click Pricebook in the navigation bar, then Import/Export in the side menu, open the Export tab, set Export Type to Pricebook (Settings, Materials and Part Link), choose a business unit, and click Export. An XLSX version of your pricebook downloads to your computer.
That is a minute of clicking. The part worth slowing down for is the two settings you pass on the way, because they decide whether the file that lands on your computer is your pricebook or a slice of it.
Export it, step by step
- In the navigation bar, click Pricebook.
- From the side menu, click Import/Export.
- On the Import / Export screen, click the Export tab.
- Click the Export Type dropdown and select Pricebook (Settings, Materials and Part Link).
- Select a business unit.
- Decide on Include inactive.
- Click Export, and the XLSX downloads.
Steps 5 and 6 are the ones people click through without reading. They are also the two that change what you get.
The two settings that decide what you get
The business unit filters by category, not by item. ServiceTitan’s own documentation is specific about this: the system filters the export based on the pricebook categories associated with the business unit you picked. So a service sitting in a category that nobody linked to that business unit is not in your file. It exists, it is active, your techs may even be selling it, and it is not in the export you are about to read. If a book looks thin the first time you open it, check this before you conclude anything.
Include inactive decides whether you get today’s book, or today’s book plus the archive. Switching a service off does not remove its row. The row stays. Every service anyone has ever switched off is still sitting in the account with a zero in the Active column, and that checkbox is what decides whether those rows ride along.
We worked in a book where the crew had taken it from 194 services down to 148 active. Forty six rows switched off, none of them gone. What the shop noticed was not the count. It was that whole categories had stopped appearing on the tech’s menu, and nobody could work out where they went. A category with nothing active left in it does not show up for the tech, even though it is still there in the file, spelled correctly, looking fine.
That is why we count active only when we read a book for somebody. A file with the inactive rows in it will tell you your pricebook has thousands of services. Most of them are ghosts.
<text class="ex-head" x="32" y="80">THE THINGS YOU SELL</text>
<rect x="32" y="94" width="316" height="30" fill="var(--color-steel-100)"/>
<text class="ex-tab" x="46" y="114">Categories</text>
<rect x="32" y="132" width="316" height="30" fill="var(--color-steel-100)"/>
<text class="ex-tab" x="46" y="152">Services</text>
<rect x="32" y="170" width="316" height="30" fill="var(--color-steel-100)"/>
<text class="ex-tab" x="46" y="190">Equipment</text>
<rect x="32" y="208" width="316" height="30" fill="var(--color-steel-100)"/>
<text class="ex-tab" x="46" y="228">Materials</text>
<rect x="32" y="246" width="316" height="30" fill="var(--color-steel-100)"/>
<text class="ex-tab" x="46" y="266">Assets</text>
<text class="ex-head" x="380" y="80">THE WIRING BETWEEN THEM</text>
<rect x="380" y="94" width="308" height="30" fill="none" stroke="var(--color-accent-dark)" stroke-width="2"/>
<text class="ex-link" x="394" y="114">ServiceMaterialLinks</text>
<rect x="380" y="132" width="308" height="30" fill="none" stroke="var(--color-accent-dark)" stroke-width="2"/>
<text class="ex-link" x="394" y="152">ServiceEquipmentLinks</text>
<rect x="380" y="170" width="308" height="30" fill="none" stroke="var(--color-accent-dark)" stroke-width="2"/>
<text class="ex-link" x="394" y="190">EquipmentMaterialLinks</text>
<text class="ex-src" x="380" y="232">Job costing and dynamic pricing</text>
<text class="ex-src" x="380" y="250">read these three.</text>
<line x1="32" y1="312" x2="688" y2="312" stroke="var(--color-steel-100)" stroke-width="1"/>
<text class="ex-src" x="32" y="338">ServiceTitan's documented pricebook template. Your account may carry more.</text>
What is actually in the file
Open the XLSX and you get a workbook with several sheets in it. ServiceTitan’s documented template carries eight tabs: Categories, Equipment, Services, Materials, ServiceMaterialLinks, ServiceEquipmentLinks, EquipmentMaterialLinks and Assets. Some accounts export more, and ServiceTitan says the columns themselves vary by account configuration, so read the file in front of you rather than a file you remember.
The first four tabs are the things you sell. Categories is the shape of the menu a tech taps through. Services is the work. Equipment and Materials are what goes on the truck.
The three link tabs are the ones nobody opens, and they carry most of the money. ServiceMaterialLinks says which parts belong to which job. ServiceEquipmentLinks does the same for equipment. Those rows are what puts a cost on a job, and a cost is what job costing and gross margin are made of. If you are running dynamic pricing, they are also where the price comes from, which is the whole argument for linking materials even when your prices are static.
So read across the tabs instead of down one of them. Take twenty services your shop sells every week, then go looking for them in the link tabs and see how many of them are actually wired to anything. We ran that same count across real books, and the gap between what a book holds and what a book has connected is the thing owners are most surprised by.
Export before you change anything
The export is a read. Clicking it does nothing to your account. The risk is on the way back in, and there are two things worth knowing before you get there.
An import is an update, not a replacement. ServiceTitan matches on the codes in your file and updates those items, and leaves everything not listed alone. That is what makes bulk edits safe. The exception is the Deactivate existing pricebook checkbox on the import screen, which ServiceTitan describes as effectively deleting your current pricebook, and says cannot be undone.
Which is the argument for keeping the file. Before you edit a single cell, export once and save that copy somewhere you will find it again. It is the only record of what the book looked like before you started, and it is more useful than it sounds: ServiceTitan’s own documentation says that if you delete your pricebook images by accident, you get them back by importing an older export that still has them. That works for the same reason a backup ever works, and only if you took one.
Timing matters on the way out, too. Take the export before a migration or a big import, not after, so you can tell what actually changed and catch the pieces that went missing quietly. And if you are moving onto ServiceTitan from another system, export the empty pricebook first, which is what ServiceTitan recommends for a first-time setup so the sheets and fields come out configured correctly before you start filling them.
What to do with the file now that you have it
Reading a pricebook export by eye is slow, and the interesting parts are the ones that require counting across tabs. Two free tools do that part for you.
Drop the file into the Pricebook Health Audit and it reads the book the way we do: what is priced below its own cost, what is dynamic with nothing to compute from, what carries no linked material, what is sitting in no category at all. It runs in your browser and the file does not leave your computer.
If you have two exports, one from before a change and one from after, Pricebook Compare diffs them and tells you exactly which rows moved. That is the check that turns “I think the import worked” into a list.
And if what the file shows you is a book that needs more than a cleanup, that is the work we do: we rebuild the book so it is built to present, using The Present-Don’t-Configure Method™. The export is where every one of those conversations starts, which is why it is the first thing we ask for.