Skip to content
Two modules, one subscription EU hosted Built inside a working fire door company
Money · setup

Price the failures once, then quotes price themselves.

Set your rates once, decide once what each failure is worth, and every future quote prices itself from the findings. The mapping travels as a CSV, so the long tail can be done in a spreadsheet rather than a form.

4 min read ContractorsOwnersManagers

Section 01How to do it

  1. 01

    Set your defaults in the app first

    Default rates and the fire-door rate card are entered in Settings, not imported. Do this before anything else — the CSV covers the mapping, not these.

  2. 02

    Export the mapping before you edit it

    The CSV carries the component and failure reason as internal IDs, so export first and work from what comes out. A spreadsheet of your own prices will not map on its own.

  3. 03

    Price the long tail in the spreadsheet

    This is the step that pays for itself. Decide once what “intumescent strip damaged” is worth, and every quote from then on prices it without a decision.

  4. 04

    Import it back

    The import confirms how many rows it found before writing anything, and skips rows that duplicate a mapping you already have.

  5. 05

    Handle the exceptions on the quote

    Rates are held once for the whole workspace, so a client who is charged differently is handled by overriding the line on their quote. The override is recorded rather than applied silently.

  6. 06

    Quote one real job and check the total

    Against what you would have charged manually. If it differs, the mapping is wrong and now is when you want to find out.

Section 02What the app actually does here

  • Pricing defaults and the fire-door rate card are set in Settings, not imported
  • The quote-item mapping exports to CSV with five columns: component type, failure reason, description, unit price and status
  • Those first two columns are internal IDs, so export before you import — an arbitrary spreadsheet will not map
  • Import confirms the row count before writing, and skips rows that duplicate an existing mapping
  • Rates are held once for the workspace — there is no separate rate card per client
  • Any quote line can still be overridden by hand, and the override is recorded rather than silent

Section 03What goes wrong

Every one of these has cost somebody real time. They are cheap to avoid and expensive to unwind.

Mapping only the common failures

The unmapped ones surface as manual lines on a Friday afternoon. Do the long tail once.

Changing prices during migration

If the totals differ you will not know whether it was the mapping or the new price. Migrate first, reprice later.

Forgetting that overrides are recorded

That is a feature — a changed line on a quote is visible, not silent — but it means “just this once” is on the record.

Section 04Questions

Q01

What format does the CSV need to be in?

Five columns: component type, failure reason, description, unit price and status. The first two are internal IDs, which is why you export the file before you edit it rather than building one from scratch.
Q02

Can different clients have different rates?

Not as a separate rate card — the mapping and the default rates are held once for the workspace. Where a client is charged differently, override the line on their quote; the override is recorded rather than applied silently.
Q03

Do quotes have to use the mapped price?

No — override any line. The override is recorded rather than applied silently.

Section 05Related

Start today

Guides help. Doing it helps more.

Everything above is checkable inside the trial, on a real building, with nothing held back and no card required.

7-day trial · No card · Cancel anytime