Work / Quote assembly
The Quote-Assembly Tool That Turned a 24-Line Export Into an 88-Line Quote With Zero Missed Prices
An estimator used to retype a raw vendor export into the company's quote format by hand, under deadline, on every job. A one-pass automation now assembles the full quote from that same export and matched every priced line on its first validation.
The user and their week
A commercial controls contractor's quoting workflow starts with a flat vendor export: a skeleton of device and part lines with no grouping, no services, no boilerplate. Turning that export into a quote the company's ERP could import was a manual assembly job every time: an estimator renamed groups to match whatever breakout the customer asked for, reordered lines by type, dropped in the recurring services block, added any lot-priced subsystem lines, inserted subtotals and spacing, then appended the plans-basis and code-compliance notes, all by hand, under a deadline, on every job.
Why it mattered
That repetition is where errors lived. On a prior job, two breakout groups that were supposed to carry the same lot-priced subsystem line ended up sharing an identical dollar figure in the finished quote, even though the revision figures behind them were different, and nobody caught it during assembly because catching it means comparing the finished quote against the source figures line by line on every quote. What the source does establish is the stakes: an error of that shape had already nearly shipped to a client and was only caught on a later re-check.
The bet, and what was rejected
I bet on automating the entire transform in one pass, closing all three failure-prone steps, group renaming, line reordering, and services-block assembly, at once, with the estimator reviewing the finished quote. A partial tool would still have left those same three steps in human hands, so I built the automation to draw catalog pricing from one shared source so per-job pricing cannot drift, and deliberately kept it away from the part-number and manufacturer-code fields the ERP needs untouched to auto-price a line correctly. That traded flexibility, the script cannot improvise around a catalog gap, for guaranteed ERP compatibility on every field that matters.
Acceptance criteria, set before build
What the record does show is a small set of constraints that shaped the build from the outset: draw all catalog pricing from one shared source that every job pulls from, leave the ERP's part-number and manufacturer-code fields untouched, and validate the output against real historical jobs until it matched exactly before letting it near a live quote.
What shipped
- A one-pass script that takes the raw vendor export plus a short per-job config (the customer's requested breakout, any lot-priced subsystem figures, which boilerplate notes apply) and assembles the entire structured, import-ready quote: correct group naming and order, line sorting, the services block, lot-priced subsystem lines with the right pricing and commission treatment, subtotals, and the trailing notes
- Output formatted to go directly into the company's ERP import
- The human gate: the estimator's role moves from building the quote to reviewing it; the automation runs the transform, and every quote is validated output handed to a person to review before it leaves the desk
What failed, and what changed
The second-job run is where the automation's dependency showed. All 7 misses out of 98 tool-priced lines traced back to catalog entries that needed an update; the assembly logic held across every line.
Result
On the pilot job, the script converted a 24-line raw vendor export into an 88-line structured, import-ready quote, and 20 of the 20 tool-priced lines matched the correct figure exactly. Run against a second, unrelated job the script had never seen, 91 of 98 tool-priced lines matched exactly, with the remaining 7 traced to catalog entries needing an update.
Adoption, and what carries forward
What the source does establish is the transferable pattern: any workflow with a flat, machine-readable export somewhere upstream that a human currently re-types into a different structured format by hand, on a deadline, following naming, ordering, grouping, boilerplate, and pricing rules that are fixed in advance, can be scripted the same way, validated against real historical jobs until it matches exactly, then run in one pass with a human reviewing the finished output before it ships.
More work
- The Review Desk That Surfaced $221,915.70 in Missed Margin
- The Quote Import Tool That Returned 30-60 Hours a Week to a 12-Person Estimating Team
- Stem: A Local-First AI System With Zero Confirmed Leaks Across 19,124 Production Events
- A Dependency-Aware Orchestrator That Delivered 2.25× Realized Throughput
- The QA Gate That Blocked a 63-of-66 Failing Pricing Path Before It Touched a Live Quote