Thermal
ReferenceInventory & purchasing

Price Book

Open Price Book in Thermal →

What it's for

Price Book is "your flat-rate catalog" — every item you sell, what it costs you, what you charge, and the margin between. Quotes, job line items, and invoices all price from here, so this screen sets what the whole company quotes.

Reach it from Materials & Purchasing → Price Book in the sidebar, at /price-book.

Tabs

Three views: Items, Category markups, and Surcharges. The Category markups view appears only for people with permission to view costs and margins (see Who can see it). Surcharges stays for anyone who can open Price Book. On Items, filters narrow by kind and status. New item adds a catalogue row. On Surcharges, New surcharge adds a company charge the office can put on a quote.

Panels and controls

The list

  • Search covers the catalogue — "Search items…".
  • Columns: Item · Code, Type, Category, Cost, Price, Margin, Used 90d, and Actions. Cost and Margin need permission to view costs and margins; without it the columns are dropped and the list shows prices, not what's behind them. Used 90d is the column worth reading before a price change — it tells you whether an item matters.
  • Prices can be edited inline, so a single correction does not need a form.
  • The Low margin filter also needs that permission — a person who can't see margins can't filter on them.

Bulk actions

Archive, Move to category, Adjust price, and Set margin % for the ticked items. Set margin % needs permission to view costs and margins. Adjust price takes a Direction, a By amount, and applies it across the selection; Set margin % works backward from a Target margin instead. Repricing a category to a target margin is the common case, and doing it as a bulk action beats editing rows one at a time.

Category markups

This view is shown only to people with permission to view costs and margins.

Category markups lists each category with Items with a cost, Markup % (Not set until you save one), and Updated. Edit markup opens Markup for that category. Markup % is added to the linked inventory unit cost. The hint on the field says saving does not change existing prices. Save markup stores the percent. A value outside 0 to 1000%, or with more than two decimal places, is refused: "Enter a markup from 0 to 1000%, with at most two decimal places."

Reprice category at markup shows only after a markup is saved. It sets each item's list price from that cost plus the markup, rounded to the nearest cent. Items built from components, priced by a connected supplier, or with no linked inventory cost are skipped and named. Set a markup for this category first is the refusal when the category has no markup.

Surcharges

Surcharges lists each company charge with Name, Type (Percent or Flat), Value, and Status (Active or Inactive). New surcharge opens New surcharge. Name is the quote line, up to 120 characters. Type is Percent of the option subtotal or Flat amount. Percent is 0 to 100. Amount is dollars. Save surcharge stores it. The row menu is Edit, and Deactivate or Reactivate. With none, the list says "No surcharges yet."

A percent on a quote is that option's items and discounts, not other fees, before tax. A flat amount is the dollars saved here. Deactivating a surcharge removes it from the quote's Add surcharge list. Lines already on a quote stay, badged Surcharge.

Categories

Categories can be renamed and removed. Uncategorized is the fallback bucket and cannot be removed — "'Uncategorized' is the fallback bucket and can't be removed." — because items removed from a category have to land somewhere.

Import

Catalogue items can be imported from a CSV. You map your columns to Thermal's, and at minimum Code and Name must be mapped before the import will run. An import either applies or does not: "The import couldn't be saved. No changes were made — please try again."

Starting from scratch? Download template on the import screen gives you a CSV with the exact columns the importer accepts and two example rows to replace. Open Price Book and choose Import to get it.

No catalog items yet is the empty state.

What it accepts

FieldFormatRequiredRule
CodeFree text, 60 characters or fewer — "e.g. LAB-001"Yes"Code is required."; "Code must be 60 characters or fewer."; "That code is already in use by another item."
NameFree text — "e.g. Standard labor hour"Yes"Name is required."
KindPick a kindYes"Please select a valid kind."
CategoryFree text — "e.g. HVAC Service"Yes"Category is required."; 120 characters or fewer
Unit priceDollars, e.g. 45.00 or 0Yes"Enter a valid price (e.g. 45.00 or 0)."
Default quantityGreater than zero, e.g. 1 or 0.5Yes"Enter a valid quantity greater than zero (e.g. 1 or 0.5)."
DescriptionFree textNo"Optional — appears on jobs and invoices."
Adjustment valueA non-zero numberYes, to bulk adjust"Enter a non-zero adjustment value."; "Invalid adjustment mode."
Target marginA percentageYes, to set margin"Enter a valid margin percentage."
Markup %0 to 1000, up to two decimal placesYes, to save a category markup"Enter a markup from 0 to 1000%, with at most two decimal places." Saving does not change existing prices
CSV mappingMap your columnsYes, to import"Map at least the Code and Name columns before importing."; "The file has no data rows to import."

An item cannot be a component of itself — "An item can't be a component of itself." — which is what stops a bundle referencing its way into a loop.

How to configure it

  • Price book settings decide the tiers, the default margin, and how bundles are priced.
  • Inventory settings link catalogue items to stocked parts, which is what makes cost real rather than typed.
  • Job costing settings decide how a priced line lands against a job's margin.

Who can see it

This screen sits behind the Price book area.

Owners and office managers can open it. Dispatchers and technicians cannot — what the company charges is not a field decision. The gate is checked on the server, not just hidden in the sidebar, so a direct link does not get around it.

Costs and margins sit behind their own permission — View costs and margins — which owners and office managers hold by default. A person who can open the Price Book without that permission sees no Cost or Margin columns, no Low margin filter, no Set margin % bulk action, and no Category markups view: prices without what's behind them. Surcharges stays.

The full role matrix is on Roles & permissions.

On this page