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

  1. Open Rate Catalog and press + Add Rate Item.
  2. Fill in Trade Category (Drywall, Plumbing, Carpentry…), the Canonical Name /
    Description
    , the Unit you buy it in, and the Default Cost.
  3. 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.
  4. 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.