Agent skill

Trade Quote Builder

by OneWave-AI in OneWave-AI/claude-skills

Builds estimates, quotes, and bids for trades and field-service businesses (HVAC, plumbing, electrical, roofing, landscaping, painting, cleaning, remodeling, general contracting, IT/AV installs).

MITAuto-check passedDocuments & Office

Install Trade Quote Builder

skills CLI
$ npx skills add OneWave-AI/claude-skills --skill trade-quote-builder -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install OneWave-AI/claude-skills trade-quote-builder --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/OneWave-AI/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/trade-quote-builder .claude/skills/trade-quote-builder && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
trade-quote-builder
GitHub stars
336
Token cost
~2.4k tokens
SKILL.md length
950 words
Files
7 (incl. scripts, references)
Skills in repo
69
Repo updated
First seen
Licence
MIT

At a glance

Builds estimates, quotes, and bids for trades and field-service businesses (HVAC, plumbing, electrical, roofing, landscaping, painting, cleaning, remodeling, general contracting, IT/AV installs).

  • Works in 6 steps: Gather the scope and the business's… → Walk the checklist. Open… → Write the spec (YAML or JSON, schema… → …
  • Someone asks for a quote
  • SKILL.md covers Workflow, Markup vs margin, Spec essentials and Output, plus 3 more sections
  • Runs Python scripts from its folder; calls python

What it does

Trade Quote Builder is an agent skill from OneWave-AI/claude-skills. Builds estimates, quotes, and bids for trades and field-service businesses (HVAC, plumbing, electrical, roofing, landscaping, painting, cleaning, remodeling, general contracting, IT/AV installs). Turns a scope into line items with waste factors, burdened labor, materials, equipment, subs, permits, mobilization, contingency, overhead, profit, and tax, then writes a client-ready xlsx (live formulas) and PDF plus an internal cost sheet, with good/better/best options, add-ons, a payment schedule, exclusions, and…

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts and reference files (for example `examples/hvac-system-replacement.yaml`, `examples/interior-painting.json` and `references/scope-checklists.md`).

It sits in Documents & Office, covering Excel spreadsheets and PDF. It works with Microsoft Excel. The repository describes itself as: 200+ production-ready Claude Code skills for sales, marketing, design, engineering, and AI agent architecture. Built and maintained by OneWave AI. The licence is MIT.

When your agent uses it

  • Someone asks for a quote
  • Asks how much should I charge for this job
  • Wants to check a price
  • Margin on a job

Example prompts

  • “how much should I charge for this job”
  • “Use the trade-quote-builder skill to build estimates, quotes, and bids for trades and field-service businesses (HVAC, plumbing, electrical, roofing…”
  • “/trade-quote-builder”

Requirements

  • Python 3

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Gather the scope and the business's numbers. Ask for: the job (measurements, counts, site conditions, photos or drawings), the trade, and…
  2. Walk the checklist. Open references/scope-checklists.md for the trade and ask about each commonly forgotten item. Every item ends up…
  3. Write the spec (YAML or JSON, schema below). Model each client-facing line as an assembly of components: materials with waste and pack…
  4. Run it.
  5. Sanity-check before sending. Read the totals table and every [WARN]
  6. Deliver. Send the client xlsx and/or PDF. Keep -internal.xlsx for the business only, since it shows costs and profit. List the assumptions…

What it can do on your machine

Read from SKILL.md and the folder at commit fc5b785. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Trade Quote Builder loads about 2.4k tokens when it runs, and up to ~6k if it reads all its reference files. Until then it costs about 233 tokens; SKILL.md has 950 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~233
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from OneWave-AI/claude-skills at commit fc5b785, republished under its MIT licence (© OneWave-AI). 950 words, ~2,429 tokens.

Download SKILL.mdSave it as .claude/skills/trade-quote-builder/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
trade-quote-builder
description
Builds estimates, quotes, and bids for trades and field-service businesses (HVAC, plumbing, electrical, roofing, landscaping, painting, cleaning, remodeling, general contracting, IT/AV installs). Turns a scope into line items with waste factors, burdened labor, materials, equipment, subs, permits, mobilization, contingency, overhead, profit, and tax, then writes a client-ready xlsx (live formulas) and PDF plus an internal cost sheet, with good/better/best options, add-ons, a payment schedule, exclusions, and assumptions. Use whenever someone asks for a quote, estimate, bid, proposal price, or job price, asks "how much should I charge for this job", wants to check a price or margin on a job, or is confused about markup vs margin. Computes deterministically with a script instead of mental math, because models routinely treat a 30% markup as a 30% margin and drop labor burden, waste, and mobilization.

Trade Quote Builder

A quote is a promise priced in advance. The expensive mistakes are not in the unit costs; they are the items nobody priced (permits, disposal, mobilization, burden) and the arithmetic done in someone's head (a 30% markup is only a 23% margin). This skill fixes both: a checklist pass for missing scope, then scripts/build_quote.py for every number.

Never do the pricing arithmetic in prose. Write the spec, run the script, and quote its output. The script uses Decimal math and the same rounding as the Excel formulas it writes, so the PDF, the client xlsx, and the internal sheet always agree to the penny.

Workflow

  1. Gather the scope and the business's numbers. Ask for: the job (measurements, counts, site conditions, photos or drawings), the trade, and the business's own costs: base wages per role, labor burden %, overhead recovery, target margin or markup, supplier prices, tax rules for their jurisdiction. If they have no numbers, start from references/unit-cost-starter.md and label every figure in the output as a placeholder to replace. Never present an invented rate as a market price.
  2. Walk the checklist. Open references/scope-checklists.md for the trade and ask about each commonly forgotten item. Every item ends up either priced as a line or written into exclusions. The script also scans the spec and flags common items it cannot find, so an unaddressed permit shows up as a [CHECK] line instead of a surprise.
  3. Write the spec (YAML or JSON, schema below). Model each client-facing line as an assembly of components: materials with waste and pack sizes, labor hours by role, equipment, subs, fees. Put shared scope in base_items, tier-specific scope in tiers, and optional extras in add_ons.
  4. Run it.
    bash
    python scripts/build_quote.py spec.yaml --check          # validate + totals, writes nothing
    python scripts/build_quote.py spec.yaml --out ./quotes   # xlsx + pdf + internal + summary.json
    python scripts/build_quote.py spec.yaml --explain LINE   # show every step for one line
    Needs openpyxl; pyyaml for YAML specs; reportlab for the PDF (skipped cleanly if missing).
  5. Sanity-check before sending. Read the totals table and every [WARN]:
    • Net margin vs target. At-cost pass-throughs and lower sub markups pull the blended margin below target. Decide whether that is intended.
    • Effective hourly = (price minus non-labor direct cost) / labor hours. This is what each crew hour brings in to cover wages, burden, overhead, and profit. Compare it to min_effective_hourly; if it is low, the hours are too high or the price is too low.
    • Option ladder. Good < Better < Best, and the gaps should be explainable to a homeowner in one sentence each.
    • Hand-check one line with --explain and show the math to the user so they can trust the rest.
  6. Deliver. Send the client xlsx and/or PDF. Keep -internal.xlsx for the business only, since it shows costs and profit. List the assumptions and exclusions in your reply, plus every placeholder the user still has to replace.

Markup vs margin

State which one you are using every time. The script refuses a spec that sets both.

  • Margin = profit / price. Price = cost / (1 - margin).
  • Markup = profit / cost. Price = cost x (1 + markup).
  • markup = margin / (1 - margin); margin = markup / (1 + markup).
  • 20% margin = 25% markup; 25% = 33.3%; 30% = 42.9%; 40% = 66.7%; 50% = 100%.
  • Quick answer: python scripts/build_quote.py --margin-to-markup 0.30.

In this script the target applies to loaded cost (direct + contingency + overhead), so it is a net profit margin. If the business sets overhead to 0, the target must be large enough to cover overhead too (a gross margin), and the script warns about it.

Show full SKILL.md (397 more words)Show less

Spec essentials

yaml
trade: hvac                      # selects the missing-item scan
pricing:
  target_margin: 0.25            # OR target_markup, never both
  by_component: {subs: {markup: 0.15}, fees: {at_cost: true}}
labor:
  burden_pct: 0.32               # payroll tax, workers comp, insurance, benefits
  roles: {lead_tech: {wage: 34.00}, helper: {wage: 19.00, burden_pct: 0.30}}
overhead: {pct_of_cost: 0.15, per_labor_hour: 0}
contingency_pct: 0.03
tax: {mode: charge_on_sell, rate: 0.07, taxable: [materials]}   # or contractor_pays_on_cost, or none
min_effective_hourly: 120
base_items:
  - id: LINE
    section: Installation
    description: Replace refrigerant line set, braze, pressure test, evacuate
    qty: 25
    unit: ft
    materials:
      - {item: Line set 25 ft, qty: 1, unit_cost: 165, waste_pct: 0}
      - {item: Insulation tape, qty: 1.6, unit: roll, unit_cost: 9, waste_pct: 0.10, pack_size: 1}  # buys 2 rolls
      - {item: Fittings, qty_per_unit: 1.4, unit_cost: 1, waste_pct: 0.10}   # scales with line qty
    labor: [{role: installer, hours: 2.5}]          # or hours_per_unit
    subs: [{item: Electrical sub, qty: 1, unit_cost: 425}]
tiers: [{name: Good, description: ..., items: [...]}]   # omit tiers for a single scope
add_ons: [{name: UV light, items: [...]}]
payment_terms: {schedule: [{milestone: Deposit, pct: 0.30}, {milestone: Completion, pct: 0.70}]}
exclusions: [...]
assumptions: [...]

Shorthand for simple lines: unit_cost (+ cost_type, waste_pct) and hours or hours_per_unit (+ role) directly on the line. Line flags: at_cost: true (pass-through), lump_sum: true (hide the unit price). client.view: lump_sum hides unit prices on every line.

Tax modes differ by jurisdiction and by job type, so ask rather than assume. charge_on_sell charges the client tax on the taxable share of each line. contractor_pays_on_cost adds tax to material cost, marks it up with the material, and notes "prices include sales tax on materials". Tell the user to confirm the treatment with their accountant.

Output

  • <number>-client.xlsx: Summary (options and add-ons with totals referencing each sheet), one sheet per option, Add-ons, Terms (payment schedule by option, exclusions, assumptions, signature block). Amounts, subtotals, tax, totals, and schedule are live formulas; the last milestone takes the remainder so the schedule sums to the penny.
  • <number>-client.pdf: the same content as a sendable document.
  • <number>-internal.xlsx: every component with base qty, waste, order qty, burdened rate, contingency, overhead, loaded cost, pricing rule, sell; per-line profit and margin; per-option summary with gross margin, net margin, markup achieved, labor hours, effective hourly, and all checks.
  • <number>-summary.json: the same totals and warnings in machine-readable form.

Worked example

examples/interior-painting.json (markup 50%, 6.25% tax paid on materials) produces a $6,180.95 base scope, 33.4% net margin, 68.68 labor hours, $74.26 effective hourly. Hand-check of the walls line (--explain WALLS):

Paint: 10.57 gal x 1.10 waste = 11.63 -> 12 gal (full cans) x $42 = $504.00, + 6.25% tax = $535.50
  contingency 5% = $26.78; overhead 10% of $562.28 = $56.23; loaded $618.50; x 1.50 = $927.75
Patch kit: $18.00 + $1.13 tax -> loaded $22.10 -> sell $33.14
Labor: 1,850 sf x 0.0125 hr = 23.125 hr x $24.00 x 1.28 burden = $710.40
  contingency $35.52; overhead 10% of $745.92 + 23.125 hr x $6.00 = $213.34; loaded $959.26; x 1.50 = $1,438.89
Line sell $2,399.79 / 1,850 sf = $1.2972 -> $1.30/sf x 1,850 = $2,405.00 (cent rounding added $5.21)

examples/hvac-system-replacement.yaml shows good/better/best tiers ($11,221.86 / $14,280.56 / $16,999.65 with 7% tax on materials), a sub at 15% markup, and a permit passed through at cost, which is why the blended margin lands near 24% against a 25% target.

Rules

  • Price from the business's own costs. Placeholder rates must be labeled as placeholders in every output until replaced.
  • Burden every labor hour. Base wage alone understates labor cost by roughly a quarter to a half.
  • Price or exclude every checklist item. Silence becomes a dispute on the job.
  • Write exclusions and assumptions in plain language the client can check against the site.
  • Payment terms, deposits, cancellation rights, and lien notices are regulated differently by state and country. Point to references/terms-and-exclusions.md and tell the user to have their terms reviewed by their own attorney. Do not give legal advice.
  • No client names in examples or shared templates; use placeholders.

References

  • references/scope-checklists.md: commonly forgotten items per trade.
  • references/unit-cost-starter.md: EXAMPLE placeholder rates and how to build real ones.
  • references/terms-and-exclusions.md: plain-language terms, change orders, deposits, exclusion wording.

© OneWave-AI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (scripts, references) in trade-quote-builder of OneWave-AI/claude-skills.

  • SKILL.md
  • examples/hvac-system-replacement.yaml
  • examples/interior-painting.json
  • references/scope-checklists.md
  • references/terms-and-exclusions.md
  • references/unit-cost-starter.md
  • scripts/build_quote.py

Open the folder on GitHubat commit fc5b785

Compare with similar skills

Trade Quote Builder next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Trade Quote Builder compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Trade Quote Builder this skillOneWave-AI/claude-skills336—~2.4kAutomated safety check: PassMIT
MarkitdownImCa0/just-laws78114 repos~3.2kAutomated safety check: NotesMIT
Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences2742 repos~2.7kAutomated safety check: PassApache-2.0
PDFzai-org/ZCode7.7k—~18kAutomated safety check: NotesProprietary
Jev SEOAgriciDaniel/jev-seo543—~2.5kAutomated safety check: NotesMIT
Markitdownjimmc414/Kosmos5952 repos~1.7kAutomated safety check: PassNone

Similar skills

  • Markitdown

    ImCa0/just-laws

    Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.

    781 GitHub starsUsed in 14 repos~3.2k tokens
    Documents & OfficeAuto-check: notes
  • Instrument Data To Allotrope

    aws-samples/amazon-bedrock-agents-healthcare-lifesciences

    Official

    Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.

    274 GitHub starsUsed in 2 repos~2.7k tokens
    Documents & OfficeAuto-check passed
  • PDF

    zai-org/ZCode

    Professional PDF toolkit covering four production workflows: reports, creative visuals, academic LaTeX, and existing PDF processing.

    7.7k GitHub stars~18k tokensUpdated today
    Documents & OfficeAuto-check: notes
  • Jev SEO

    AgriciDaniel/jev-seo

    Full live SEO audit of any website from its homepage URL, powered by Jev (TypeSafe's System One model).

    543 GitHub stars~2.5k tokensUpdated 19 days ago
    Documents & OfficeAuto-check: notes
  • Markitdown

    jimmc414/Kosmos

    Convert various file formats (PDF, Office documents, images, audio, web content, structured data) to Markdown optimized for LLM processing.

    595 GitHub starsUsed in 2 repos~1.7k tokens
    Documents & OfficeAuto-check passed
  • Research Integrity Audit

    xuzhougeng/wisp-science

    学术审查 / research-integrity screening of a manuscript's figures and reported numbers.

    1k GitHub stars~2.6k tokensUpdated today
    Documents & OfficeAuto-check passed

More from OneWave-AI/claude-skills

All 69 skills in this repo
  • CRM Data Cleanup

    OneWave-AI/claude-skills

    Finds duplicate and junk records in a CRM CSV export with fuzzy matching, normalizes fields and writes a reviewable merge plan plus import-ready files without touching the live CRM.

    336 GitHub stars~2.5k tokensUpdated 9 days ago
    Auto-check passed
  • Design Export Repair

    OneWave-AI/claude-skills

    Repairs broken decks and PDFs exported from Claude Design or similar AI deck generators: clipped text, wrong fonts and corrupted .pptx package structure.

    336 GitHub stars~2.6k tokensUpdated 9 days ago
    Auto-check passed
  • Bi Measure Builder

    OneWave-AI/claude-skills

    Writes, explains, debugs, and optimizes BI calculations - Power BI / Fabric DAX measures and calculated columns, Tableau calculated fields (FIXED/INCLUDE/EXCLUDE LOD expressions, table…

    336 GitHub stars~2.2k tokensUpdated 9 days ago
    Auto-check passed
  • Bookkeeping Close

    OneWave-AI/claude-skills

    Categorizes transactions, reconciles bank and card statements to the ledger, works a month-end checklist and prepares a close package, without ever forcing a balance.

    336 GitHub stars~2k tokensUpdated 9 days ago
    Auto-check passed
  • CSV and Excel Merger

    OneWave-AI/claude-skills

    Combines CSV, TSV and Excel files into one verified table with pandas, by stacking or joining, mapping columns, normalizing keys and removing duplicates.

    336 GitHub stars~1.6k tokensUpdated 9 days ago
    Auto-check passed
  • Sec Filing Puller

    OneWave-AI/claude-skills

    Pulls financial statement numbers for US public companies straight from SEC EDGAR's free official XBRL APIs (companyfacts, companyconcept, frames, submissions) into a cited table.

    336 GitHub stars~2.1k tokensUpdated 9 days ago
    Auto-check passed

Works with

Questions about Trade Quote Builder

What does Trade Quote Builder do?

Builds estimates, quotes, and bids for trades and field-service businesses (HVAC, plumbing, electrical, roofing, landscaping, painting, cleaning, remodeling, general contracting, IT/AV installs). Trade Quote Builder is an agent skill from OneWave-AI/claude-skills. Builds estimates, quotes, and bids for trades and field-service businesses (HVAC, plumbing, electrical, roofing, landscaping, painting, cleaning, remodeling, general contracting, IT/AV installs).

When should I use Trade Quote Builder?

Trade Quote Builder fits situations like: someone asks for a quote; asks how much should I charge for this job; wants to check a price; margin on a job.

How do I install Trade Quote Builder in Claude Code?

Run `npx skills add OneWave-AI/claude-skills --skill trade-quote-builder -a claude-code`. Or copy the skill folder (trade-quote-builder in OneWave-AI/claude-skills) into .claude/skills/trade-quote-builder in your project. Claude Code loads it when a task matches its description.

How do I install Trade Quote Builder in Codex?

Run `npx skills add OneWave-AI/claude-skills --skill trade-quote-builder -a codex`. Or copy the skill folder (trade-quote-builder in OneWave-AI/claude-skills) into .agents/skills/trade-quote-builder in your project. Codex loads it when a task matches its description.

Can I use Trade Quote Builder in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OneWave-AI/claude-skills --skill trade-quote-builder -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/trade-quote-builder, .gemini/skills/trade-quote-builder, .github/skills/trade-quote-builder and .opencode/skills/trade-quote-builder in your project.

What does Trade Quote Builder need to run?

Going by SKILL.md and its folder, Trade Quote Builder needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.

Does Trade Quote Builder access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Trade Quote Builder safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Trade Quote Builder use?

Trade Quote Builder is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Trade Quote Builder use?

About 2.4k tokens (SKILL.md is roughly 9.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.5k tokens, read only when the agent opens those files.

What are the alternatives to Trade Quote Builder?

Skills that share tags, products or a category with Trade Quote Builder: Markitdown (ImCa0/just-laws, 781 stars), Instrument Data To Allotrope (aws-samples/amazon-bedrock-agents-healthcare-lifesciences, 274 stars), PDF (zai-org/ZCode, 7.7k stars) and Jev SEO (AgriciDaniel/jev-seo, 543 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Trade Quote Builder?

OneWave-AI (a GitHub organization) maintains it in OneWave-AI/claude-skills, which has 336 GitHub stars. The repository holds 69 skills in this directory. The repository was last updated on October 2, 2026.

Source: OneWave-AI/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.