Price Codes
How categories and item codes work, creating your own categories, adding codes one at a time, and bulk-importing your price list from a spreadsheet.
Price codes are your organization's price list. When the AI estimator builds an estimate, it matches each scope item to a code and uses that code's price. Codes come from two places: the shared price-code library that every organization starts with, and the codes you add yourself, either brand new ones or overrides of shared entries.
This page covers the Add tab in Settings → Price Codes: adding a single code by hand, and bulk-importing many at once from a spreadsheet.
What's a category?
A category is the trade grouping a price code belongs to. There are about 30 of them. For example:
WTR: Water Damage Mitigation (dehumidifiers, air movers, extraction)DRY: Drywall install & repairPNT: PaintCDC: Cleaning, Carpet & Soft Goods
Most categories come from the shared library, but you can also create your own — say a MTRL category for store materials and consumables. There are two ways:
- While adding a code manually: type a new code (2–12 letters or numbers) into the Category picker and choose Create category.
- During a bulk import: use any category code in the spreadsheet. Categories that don't exist yet are created automatically when you import, and the preview lists them before anything is written. To give a new category a readable name, add its code and a short description under the "Your own categories" section of the Reference tab; otherwise the code doubles as the name.
Your own categories show up alongside the shared ones everywhere categories are picked. If you're not sure which shared category a code belongs to, the Reference tab in the import spreadsheet lists every one with a plain-English description.
What's an item code?
An item code (also called a selector) is a short identifier, usually 3–8 characters, that is unique inside a category. Examples within WTR:
DHM: Dehumidifier (up to 69 ppd)AMS: Air moverEXT: Water extraction
Combined, the category plus the item code (WTR · DHM) is the lookup key the AI estimator uses to match a scope item to your pricing.
Overriding a shared code
To replace a shared library price with your own, add a code with the same category and item code. The AI substitutes your price automatically wherever that code is used. On the Manage tab, your overrides show with an amber stripe so you can tell them apart from untouched library entries.
Add one code manually
On the Add tab, click Add price code. Pick the category, then enter the item code, description, unit, and price. This is the quickest path for one-off codes or a quick price fix.
Bulk import from a spreadsheet
For a whole price list, use the import flow:
Download the template from the Add tab. The
.xlsxfile has two tabs:Price Codes, where you enter your data, andReference, a lookup of every valid category and unit with its description.Fill in one row per code. The Category and Unit cells have dropdowns for the known values, but you can also type your own — a new category code, or a unit the list doesn't cover (
BX,CS,PK). Flip to the Reference tab if you don't know what a code means, or to name a new category under "Your own categories".Save the file as
.xlsxor.csv, and keep it under 5 MB.Click Import from spreadsheet on the Add tab, choose your file, and click Preview & verify. The review opens as its own full page.
Review every row. You can search by code or description, sort any column, and filter by status. Every row gets a status before anything is written:
- Valid: the row will be imported, marked as either a new code or an update to an existing one.
- Invalid: something's wrong with the row (a missing field, an unrecognized value). Invalid rows are skipped on import; everything else still goes through.
- Superseded: the same category + item code appears again later in the file. The last occurrence wins; earlier duplicates are skipped.
The review also lists any categories the import will create, and flags a new code that looks one letter off from an existing one so a typo doesn't become a permanent category.
Confirm the import. You'll see how many codes were added, how many were updated, and a list of any skipped rows with the reason for each.
Re-importing the same file is safe: rows that match an existing code update it in place rather than creating a duplicate.
After importing
Your codes appear on the Manage tab alongside the shared library. Codes that override a shared entry carry the amber stripe; fully custom codes don't. Either kind can be edited or removed there later.
Managing your categories
The Categories tab lists your own categories with how many price codes each one holds. Shared library categories don't appear — they aren't yours to edit.
- Rename the name freely; it's just the display text shown in pickers.
- Change the code and every price code under it moves along. If the new code already exists — one of yours or a shared one — the two categories merge: the existing one keeps its name, and where both have the same item code, its pricing is kept and the duplicate removed. This is the fix for a typo'd category (say,
MTRLScreated next toMTRL): change the typo's code to the real one and they merge. - Delete an empty category outright. A category that still has price codes asks where to move them first, so no code is ever left pointing at a category that doesn't exist.