Resources • quotes • pricing • CSV
Pricing and quotes: line-item setup with CSV
A practical guide to mapping inspection outcomes to quote line items, keeping pricing consistent, and using CSV workflows for bulk maintenance.
- Quotes
- Pricing
- CSV
- Consistency
- Builder
Consistent inspection findings produce consistent quote scope —
without retyping
A practical guide to mapping inspection outcomes to quote line items, keeping pricing consistent across inspectors and buildings, and using CSV workflows for safe bulk maintenance.
Goal 01
Map outcomes
Tie common fail reasons to quote line items so the same finding always produces the same scope, wording, and pricing. Consistent mapping removes the "which line item should this be?" decision from every inspector on every job.
Goal 02
Bulk update
Use CSV export/import for controlled bulk changes — editing pricing, descriptions, and units across many line items at once. Export first as a dated snapshot, edit in a spreadsheet, then import back. Safe, versioned, and reversible.
Goal 03
QA before sending
Review totals, units, and evidence links before issuing PDFs. The mapping gets you most of the way — but a quick check that line items reflect the actual findings, and that any client-specific rules are applied, catches errors before they reach a client.
Teams quoting from findings
Map inspection outcomes to line items so the same issue produces the same scope — no "which line item is this?" decision on every job.
Operations leads
Enforce naming and units so totals and exports stay comparable across sites — and quote outputs don't drift depending on which inspector captured the findings.
Anyone maintaining pricing
Use CSV exports as versioned snapshots for safe bulk changes — edit in a spreadsheet, import back, and spot-check outputs before the next job.
The same finding always produces the same suggested
scope, wording, and pricing
Three components working together: inspection outcomes as inputs, a mapping rule that connects each reason to a line item, and consistent quotes as outputs. Set it up once — every building benefits.
Inputs → mapping rule → outputs
Step 01 · Inputs
Inspection outcomes & fail reasons
Captured on site: the outcome (pass/fail), the fail reason ("gap at bottom exceeds threshold", "closer not self-closing"), and the door identity. These are the raw inputs that the mapping turns into scope.
Step 02 · Mapping
Rule linking reason to line item
A rule that connects each fail reason to a quote line item — description, unit, and price. "Gap at bottom" maps to "Replace door bottom seal — per door — £X". The same reason always maps to the same line item, by every inspector, on every job.
Step 03 · Outputs
Consistent quotes and PDFs
Scope that reads the same way across buildings, inspectors, and time — comparable totals, consistent wording, and pricing that clients recognise across jobs. Approvals get faster when clients have seen the same line items before.
Start with your top 20 fail reasons — the ones that appear on every building. Full coverage comes later; minimum coverage makes the first building go smoothly.
Naming convention · line item descriptions
Four parts · in this order · every description
Part 01
Action
Start with the verb
What will be done to the door or component.
Adjust · Replace · Repair · Install
Part 02
Component
Name the part
The specific component being worked on — not the whole door.
closer · smoke seals · intumescent
Part 03
Unit
Make units explicit
Keep "per door" vs "per leaf" vs "per item" unambiguous — mixed units create totalling errors.
per door · per leaf · per item
Part 04
Stability
Keep wording stable
Avoid near-duplicates that look the same but use different phrasing — they fragment reporting over time.
No: "Replace seal" + "Seal replacement"
Get minimum viable pricing in place for your first building —
then iterate
Three steps that get you from "no mapping" to "quoting your first building cleanly." You don't need perfect coverage before the first job — you need enough to quote the most common findings without rebuilding scope manually.
Three steps · start lean · iterate after
Step 01
Agree units and naming
Decide how work is priced before building any mappings — this decision shapes everything downstream. Inconsistent units create totalling errors that are tedious to find later.
Step 02
Map common fail reasons
Link your most common inspection outcomes to the quote items you want suggested automatically. Start with remedials you actually deliver — gap seals, closers, hinges, intumescent strips — not an exhaustive catalogue.
Step 03
Run your first building
Create a quote from real findings and review where the mapping under- or over-suggested scope. First-building feedback is the fastest way to improve mappings — better than trying to build a perfect setup in advance.
You don't need to get pricing perfect before the first job. A minimum viable set for common fail reasons, run once, generates better feedback than a week of planning in advance.
Export first as a dated snapshot — edit —
then import back safely
Use CSV for controlled bulk changes when you have many line items to update at once. The export is your backup and your audit point; the import is additive so existing live mappings stay intact.
Three steps · export · edit · import
Step 01
Export a dated snapshot
Before making any bulk changes, export the current state as a CSV. Treat it as a versioned backup — date the filename, store it alongside your other exports. If anything goes wrong with the import, you have a clean restore point.
Step 02
Edit in a spreadsheet
Open the export in a spreadsheet, make your changes, then save back as CSV. Keep the column order intact and do not edit IDs — changing either breaks the import. Keep descriptions simple; avoid commas inside field values.
Step 03
Import — additive, not destructive
Fire Door App imports are additive — new rows are added, duplicate rows are skipped, and existing live mappings are left untouched. To edit an existing mapping, use Settings directly. Spot-check 5–10 rows in the UI after every import.
Safety checks · before you import
Five checks that prevent the most common import failures
Column order intact. Keep the exported columns in the same order — reordering columns is the most common cause of import failures.
IDs unchanged. Do not edit existing ID values — changing them creates orphaned rows that can't be reconciled with existing settings.
Units and currencies consistent. Mixed units ("per door" and "per leaf" in the same column without a rule) create totalling errors in quotes.
No commas inside field values. Commas inside a description field (e.g. "Adjust, replace or install") break CSV parsing. Keep descriptions simple in CSV; use the UI for complex wording.
Spot-check after import. Generate a test quote from sample findings and review that totals, descriptions, and units look right before the next job.
Line item naming · recommended convention
Action · component · unit · keep wording stable
Part 01
Action
Start with the verb
Adjust · Replace · Repair · Install — makes the scope immediately clear.
Part 02
Component
Name the part
closer · smoke seals · intumescent · hinges — not "door work" or "general repairs".
Part 03
Unit
Explicit units
per door · per leaf · per item — keep it unambiguous so totals stay correct.
Part 04
Stability
Stable wording
Avoid near-duplicates — "Replace seal" and "Seal replacement" create fragmented reporting over time.
Pricing drifts unless you choose a simple rule
for changes and stick to it
Three maintenance habits, four pitfalls that cause the most pricing pain, and quick answers on bulk mapping, CSV failures, regional variations, and platform scope.
Ongoing maintenance
Three habits that keep pricing consistent over time
Version the change
Keep a dated CSV export every time you do bulk changes — it's both a backup and an audit record. "What did pricing look like before we updated it in February?" becomes answerable.
QA after updates
Generate a test quote from sample findings and review totals, descriptions, and units after any change. The import might have worked; the mapping might still be wrong.
Keep exceptions explicit
Document client-specific uplifts and regional variations so they're not tribal knowledge. When the person who "knows" the rule leaves, the exception becomes a mystery.
Common pitfalls · where pricing breaks down
CSV integrity
Breaking CSV imports
Wrong column order, commas or quotes inside field values, edited IDs, or inconsistent unit spellings are the most common causes. Fire Door App imports are strict — a single malformed row can prevent the whole file being accepted.
Fix: keep the exported column order, avoid commas inside descriptions, don't touch ID values, and spot-check in the UI after every import.
Units
Mixed units in quotes
Mixing "per door" and "per leaf" without a clear rule means totals drift depending on which inspector mapped the finding. A two-leaf door quoted per leaf costs twice what the client expected if the rule isn't explicit.
Fix: agree a unit rule before mapping — "all fire door work is per door unless the component is priced per leaf" — and document it.
Exceptions
Untracked client exceptions
Client-specific uplifts — a 10% premium for out-of-hours, a negotiated rate for a housing portfolio — become tribal knowledge when they're not documented. Quote accuracy depends on whoever "knows" the exception being involved.
Fix: keep a short exceptions log alongside your CSV exports — client, rule, date agreed. Versioned so you can see when the rate changed.
Consistency
Ad-hoc scope creep
When the same type of work gets quoted with different line item descriptions across jobs — because the mapping wasn't found or didn't exist — reporting becomes inconsistent. "Replace seal" and "Door seal replacement" are the same work, priced differently.
Fix: if ad-hoc line items become common, add them to the mapping. Review after each new building type and fill the gaps.
Common questions · quick answers
Yes — CSV export/import is designed for this. Imports are additive: existing mappings are skipped, new rows are added. This means you can seed a fresh workspace, extend an existing set, or add a batch of new fail reason mappings safely without risk to live settings.
To edit existing mappings — change a price, update a description — use Settings directly. The CSV import only adds; it doesn't overwrite. Export first, make additions in the spreadsheet, import back, and spot-check.
In order of frequency: wrong column order (reordering columns in the spreadsheet breaks parsing even if the data is right), commas or quote marks inside field values (a description like "Adjust, replace or install closer" contains a comma that splits the field), edited ID values, and inconsistent units or currencies.
The simplest rule: only edit the value columns (description, unit, price). Leave ID and structural columns untouched. If you need a complex description, enter it via the Settings UI after the import, not in the CSV.
Start with one baseline set, then agree a rule for variations before exceptions accumulate. Common approaches: client-specific uplifts applied as manual overrides on individual quotes; regional presets as a separate named set; or separate workspaces for distinctly different pricing models.
The key is keeping the rule documented — not assumed. "We add 15% for out-of-hours" is a rule. "Mike knows what to charge for that client" is a risk. Write the rule, version it when it changes, and make it findable by anyone quoting.
In pricing settings (where you manage mappings, import/export CSVs, and set defaults) and in quote building (where mapped fail reasons appear as suggested line items when you convert inspection findings to scope).
Fire Door App supports the workflow — consistent mapping, consistent suggestions, consistent outputs. It does not replace your commercial judgement on pricing levels, client negotiations, or what scope is appropriate for a given finding.
Quick facts
Pricing & CSV at a glance
Mapping
Fail reason → description + unit + price. Same finding = same line item, every time
Naming
Action · component · unit. Stable wording — no near-duplicates
CSV workflow
Export dated snapshot → edit (keep cols) → import additive → spot-check
Safety
Never edit IDs · no commas in fields · keep column order · spot-check after import
Maintenance
Version changes · QA after updates · keep exceptions documented not tribal
Platform scope
Workflow support — not commercial judgement. Pricing decisions remain yours
Get started
Quote consistently across one real building
Set up a baseline mapping, run a pilot inspection, then generate a quote without rebuilding scope in spreadsheets.
Quote consistently across one real building.
Baseline mapping, pilot inspection, then quote from the record.
Set up a baseline mapping, run a pilot inspection, then generate a quote without rebuilding scope in spreadsheets.