DOCUMENTATION

Everything you need
to get started.

Installation, configuration, CLI commands, rate sheets, drawing takeoff, and the MCP server guide.

User Guides

Plain-language guides ship in the product repo under documents/users/ — written for estimators, not engineers:

GuideCovers
Getting Started
getting-started.md
Install, the one-folder mental model, your first estimate, filling the BOM, first pipeline run.
Dashboard Guide
dashboard-guide.md
Every panel: workspace strip (pipeline, win rate), financials, cost-by-type, warnings, revisions, quick actions, Quote Preview & PDF export.
Pricing Guide
pricing-guide.md
The four pricing sources, price-book discipline, rate sheets, material spot refresh (BYO key), profile forks.
Tutorial 01 — Your First Quote
tutorials/01-your-first-quote.md
New Quote → BOM rows → insert a nest → Run All → fix a warning → Quote Preview → PDF → Set Status → commit & tag.
Tutorial 02 — Parts, Nests & the Price Book
tutorials/02-parts-nests-and-the-price-book.md
The Insert Part / Nest flow, parent placement rules, the price-book loop, keeping material rates honest.
Tutorial 03 — Budgetary vs Firm
tutorials/03-budgetary-vs-firm.md
Quote top-down ($/lb) or bottom-up (material + hours), per assembly, in the same file.
Tutorial 04 — Your Own Vocabulary
tutorials/04-your-own-vocabulary.md
Define your own cost types, markups and auto-added rows in rates.csv — no code.
Tutorial 05 — Machined Parts & Weldments in 3D
tutorials/05-machined-parts-and-weldments.md
In development, not in the closed beta: cost a part or weldment from its STEP model in FreeCAD.
Rates CSV Guide
rates-csv-guide.md
Every column and section of rates.csv, with recipes and common errors.

Installation

Prerequisites

RequirementMinimumNotes
Python3.10+3.11 or 3.12 recommended
VS CodeAny recentWith the Python extension
openpyxl3.1+Required for the engine
pdfplumber, ezdxfsee requirements-takeoff.txtDrawing takeoff (PDF, DXF)
LibreOfficeAny recentOptional — PDF export of the quote

Setup

  1. Clone the repository or download the latest release
  2. Create a virtual environment: python -m venv .venv
  3. Activate it: source .venv/bin/activate (Linux/macOS) or .venv\Scripts\Activate.ps1 (Windows)
  4. Install: pip install openpyxl

Verify

python -c "import openpyxl; print(openpyxl.__version__)"
python app/fastQuote.py template test.xlsx

If you see Template: test.xlsx you are ready.

Optional: VS Code Extension

Open the extension/ folder in VS Code, run npm install, then press F5 to launch. The extension provides a project tree view, inline Run / Validate buttons, and a config editor with JSON schema validation.

Optional: MCP Server

pip install -r requirements-mcp.txt
python mcp_server.py

Exposes the engine as tools your AI agent can drive directly — see documents/fastQuote_mcp_guide.md.


Quick Start

# Generate a blank template workbook
python app/fastQuote.py template MyProject.xlsx

# Open in Excel or LibreOffice, fill in BOM data, save

# Process everything and generate all outputs
python app/fastQuote.py run MyProject.xlsx

The run command handles everything: BOM processing, BOQ generation, Quote sheet, Warnings, and vendor purchase orders.

Configuration

Generate a default config:

python app/fastQuote.py config

Key sections in bom_config.json: columns (1-based Excel positions), sheet_names, folder_types, settings (start row, max tree depth).

Estimator data (types, markups, rates, UOMs, vendors) lives in rates.csv — edit it in the Rates panel or in Excel; it compiles to rates.json automatically on Run All. Never hand-edit rates.json.


Commands

CommandWhat it does
runALL-IN-ONE: BOM, BOQ, Summary, Quote, PO, Warnings
templateCreates a fresh template workbook
processProcesses BOM only (auto-level, formulas, formatting)
boqGenerates BOQ and Summary sheets
quoteGenerates a customer-ready Quote sheet
validateRuns deterministic validation rules
configGenerates a default bom_config.json
rates syncCompiles rates.csv into rates.json
rates statusChecks for rate sheet drift
estimateScaffolds a new estimate project folder
import_csvImports a CSV BOM into a workbook

BOM Structure

Dot-notation item numbers define hierarchy. Folder types (ASSY, WELD) own children. Leaf types (PART, PROC, MATL, LABR) carry costs. Add new types in rates.csv — zero code changes.

Weight resolution: CAD mass, volume times density, or DXF profile area times thickness. Never guessed.


Pricing and Vendors

Provider chain (first non-empty wins): Price Book → Octopart → Digi-Key → McMaster → Grainger. Unpriced parts: your AI agent researches and records via price_book_upsert.


Rate Sheets

Shop economics in rates.csv: type, markup, injection, material ($/lb by grade), machining, welding, burn ($/in^2), coat ($/in^2), uom, header. Rate kinds: rate_per_lb, hrs_per_lb+rate_per_hr, pct_of_cost, rate_per_uom, rate_per_sqin, flat.


Drawing Takeoff

Four-layer Strategy Engine: Extract (AI reads drawing) → Normalize (Python to canonical CSV) → Match (Python to cost templates) → Compile (Python to BOM rows).


MCP Server

Tools your AI agent can drive: BOM inspection, vendor pricing, price book, validation, rate sheets, pipeline, takeoff, strategy engine.


Validation

python app/fastQuote.py validate MyProject.xlsx. Checks missing prices, broken hierarchies, type consistency, rate drift. Severity-coded with row numbers and fix hints.