Thermal
Admin

Set your pricing and business rules

Open Price Book in Thermal →

Pricing in Thermal has two layers: the Price Book — the catalog of labor, parts, materials, fees, and discounts you actually sell — and a handful of org-wide billing rules (tax, payment terms, document numbering, not-to- exceed handling) that apply to every invoice and quote you generate. Set both up before you start writing jobs and quotes, so pricing and billing behave consistently from the first job.

Build the catalog

Open Price Book.

The Price Book catalog

Choose New item and fill in:

  1. Code — a short internal identifier (e.g. LAB-001). Required.
  2. Kind — Labor, Part, Material, Fee, or Discount.
  3. Name — what shows on the job or invoice line (e.g. "Standard labor hour").
  4. Category — type a new one or pick an existing category from the list. Categories group the catalog for browsing; they're not a separate setup step.
  5. Unit price — the dollar amount for one unit at your Standard price. This is the price everything else (Member, Commercial, per-branch overrides) is computed from.
  6. Default quantity — how many units get added when this item is dropped onto a job or invoice (usually 1).
  7. Description — optional; appears on the job or invoice line under the item name.

An item you no longer sell can be Deactivated instead of deleted — it stops appearing as selectable on new jobs and invoices, but stays on every past record it's already used on.

You don't have to build the catalog by hand: Import CSV loads a CSV catalog (a generic format or Profit Rhino's export), and Categories lets you rename or merge categories across every item in one place — items are never removed when a category is renamed or deleted, just re-filed to Uncategorized.

Pricing tiers — Standard, Member, Commercial

Every item's Member and Commercial prices are computed automatically from its Standard price using the org-wide tier discounts below — you don't set three prices per item unless one needs to be different. Open any item and its Tiers tab to see the computed Standard, Member, and Commercial prices side by side, each with its margin. If one item needs a price that doesn't follow the formula, set a per-item Override on that tier from the same tab — an override is used exactly as entered and is never rounded by the org's rounding rule.

Need to reprice a batch of items at once — a seasonal cost increase, a new labor rate? Select items in the catalog table and use Adjust price (a flat percentage or dollar amount, up or down) or Set margin % (recompute price to hit a target gross margin) from the bulk-action bar. Items with no linked cost, or that are built from components, are skipped automatically and called out in the result.

To price a category from what the parts cost you, open Category markups on Price Book. Edit markup, enter Markup %, and Save markup. That percent is added to each item's inventory unit cost. Saving the percent does not change prices already on the items. Reprice category at markup writes those prices. Items built from components, priced by a connected supplier, or with no linked inventory cost are skipped and named.

Surcharges — after-hours, fuel, trip

Open Price Book and choose Surcharges, then New surcharge.

  1. Name — what shows as the line on the quote, such as After-hours.
  2. Type — Percent of the option subtotal or Flat amount.
  3. Percent (0 to 100) or Amount (dollars, such as 75.00).

Save surcharge stores it. A percent is of that quote option's items and discounts, not of other fees, and it is applied before tax. A flat amount is the dollars you entered. Edit changes one. Deactivate takes it off the quote's Add surcharge list; Reactivate puts it back. A line already on a quote stays.

On a quote that is still editable, Add surcharge appears when at least one surcharge is active. Choose one and add it. The line is badged Surcharge. An approved, declined, or expired quote refuses it ("Cannot add a surcharge to a" that status). A percent on an option with nothing to charge refuses with "Surcharge base must be positive."

Org-wide billing rules

The tier formula, tax rate, and document defaults all live on Settings → This company → Invoicing, not on the Price Book itself:

The Settings page
  • Sales tax rate and Payment terms — applied to new invoices and quotes as they're generated.
  • Default invoice notes — prefilled onto every new invoice (thank-you, warranty terms, remittance instructions).
  • Not-to-exceed (T&M) — a Warn threshold (%) that shows a warning bar as a time-and-materials job's costs approach its NTE cap, and an Enforcement setting that either just warns or blocks adding line items past the cap.
  • Document numbers — the prefix in front of invoice, quote, and job numbers (e.g. INV-1042). Defaults to INV, P, and WO.
  • Price Book margin floor, rounding, and tier defaults:
    • Margin floor (%) — items priced below this gross margin are flagged "Low margin" in the catalog, so a stale cost or an underpriced item is easy to spot.
    • Rounding — Exact, Nearest dollar, or Charm pricing ($X.99). Applies only to the computed Member/Commercial prices; Standard price and per-item overrides are always exact.
    • Member tier default (%) / Commercial tier default (%) — the signed percentage off Standard price each tier uses by default (e.g. -10 for 10% off). Any item can override its own tier price on top of this.
    • PO receipt costing — whether receiving a purchase order updates an inventory item's cost basis, and how (Manual only, Latest cost, or Weighted average).

If your company runs more than one branch, any of these billing rules can be narrowed per branch — see Set up branches.

Reference

  • Every billing and Price Book setting, with its default value — generated straight from the settings schema — is in Settings reference.
  • Line-item kinds and other domain values (labor, part, material, fee, discount, and the rest of the fixed-choice fields Thermal uses) are in Status & domain values.
  • Who can reach Price Book and Settings — Owners and Office users; Dispatchers and Technicians can't. See Roles & permissions.

On this page