Rate catalog — your prices, and where they come from
The price list the app quotes from — adding an item, filtering by trade and market, importing what you actually bought, and how a price you type on a quote becomes evidence for the next one.
Rate catalog
The Rate Catalog (left sidebar → Rate Catalog, /catalog) is the price list the
app quotes from. Nobody wants to type forty stud prices, so there are three ways to fill
it: add an item, import what you actually bought, or price a quote and let the app learn
from it.
The two price columns, and why they are separate
| Column | What it is | Where it comes from |
|---|---|---|
| Base Rate | The shared starting price for that item | You, when you add the item |
| Last Recorded Cost | What you last paid, with the supplier and date beside it | A supplier purchase import, or a price you typed on a saved quote |
| Recorded ZIP | The market that price was recorded in | A market ZIP on rows that carry a recorded cost; rows without one show a Base Rate badge |
The Base Rate is deliberately hard to move. It is the number a quote starts from, and
one cheap purchase is evidence about that purchase, not a new price for everyone. That
rule is explained where it bites — see
Supplier Catalogue Imports.
Add an item
- Open Rate Catalog and press + Add Rate Item.
- Fill in Trade Category (Drywall, Plumbing, Carpentry…), the Canonical Name /
Description, the Unit you buy it in, and the Default Cost. - Set Type — Material, Labor, Subcontract, or Plant / Tool Hire. This matters:
material tax applies to material lines only, so a labor item marked as material
gets taxed and a material item marked as labor does not. - Press Save Item.
Find things again
The filter bar above the table searches on keyword, trade, market ZIP and
supplier, so "what did I pay for drywall in the 75001 market" is one or two boxes
instead of a scroll. If the table is empty with filters on it says so, and an empty
catalog offers the two ways to start: add an item, or import a purchase export.
Import a supplier purchase file
📥 Import Supplier Purchases takes a Home Depot Pro Xtra or Lowe's for Pros export,
or any CSV, TSV or Excel file with a description and a unit cost. The full walkthrough
— where each supplier hides the export, what the importer skips on purpose, and what a
"row skipped" message means — is
Supplier Catalogue Imports.
Where catalog prices show up
- The parser matches carrier scope against the catalog, so parsed lines arrive
priced instead of blank. - The quote builder suggests catalog items as you type a line description and fills
in the unit and the cost ("autocorrect"). When a suggestion carries a recorded
purchase cost, that is the price it offers — your price, not a list price. - Assemblies are calculated from catalog items: pick a wall size and the studs,
board, tape and screws land on the quote as priced lines, with a waste factor. - A quote is evidence too. When a quote is saved, any line carrying a description
and a cost is matched back to the catalog. A material the catalog already knows gets
the price recorded as your last recorded cost; a material it has never seen is
added with that price as its starting cost, and your wording is kept as a synonym so
the next typeahead finds it. No existing Base Rate is overwritten by this.
Two honest limitations
- A quote line is not a catalog edit. What you type on a line lives on that quote.
It teaches the catalog, but it does not reprice anyone else's quotes. - The catalog page adds, deletes and imports — it does not yet edit a row. To
correct a name or a price you saved wrong, delete the item and add it again.
Deleting a catalog item never touches a quote: every quote keeps its own copy of each
line and its price.
Next
Prices are only half of a quote — margin is the other half:
Gross Margin & Contingency.
Found something out of date? The guides live in the repository's
docs/ directory — fixing the guide is part of fixing the feature.