Structured AV Quotes
Build quotes organized by room, system, and equipment — the way AV projects are actually designed and installed.
QuoteAV is built for small AV integrators — residential and commercial. Track margins, generate proposals, and move quotes to won projects without the enterprise bloat.
No credit card required. Start quoting in minutes.
Already have an account?
Sign in to your QuoteAV account.
Enter your email and we'll send a reset link.
Check your email
We sent a password reset link to {{ resetEmail }}. Check your spam/junk folder if you don't see it within a minute.
QuoteAV replaces spreadsheets and bloated enterprise tools with a focused quoting workflow designed for audio visual integrators.
Build quotes organized by room, system, and equipment — the way AV projects are actually designed and installed.
Generate clean, client-ready PDF proposals and work orders with your company branding in one click.
See your cost, sell price, and margin on every line item. No hidden math, no surprises — keep your margins healthy across every job.
Search thousands of products from major AV manufacturers like Extron, Biamp, and Allen & Heath. Add to quotes instantly.
Set up your equipment and labor rates, or search the built-in AV catalog.
Organize by room and system. Add equipment, labor, and freight to each.
Generate professional proposals, track margins, and move quotes to won projects.
QuoteAV is built specifically for small and mid-sized AV integrators.
It helps you create clean, structured quotes without dealing with bloated enterprise systems or generic tools that don’t match how AV projects are actually designed.
Everything revolves around the quote — rooms, systems, equipment, and labor — so what you design is exactly what your client sees and what your team installs.
You control your pricing.
QuoteAV handles the structure and presentation so you can move faster and quote with confidence.
Syncing QuoteAV Cloud...
Won quotes — {{ wonQuotes.length }} active installation{{ wonQuotes.length !== 1 ? 's' : '' }}
No projects found
Try changing your filter or search
| Quote # | Project Name | Client | Value | Created | Project Status | |
|---|---|---|---|---|---|---|
|
{{ project.quoteNumber }}
|
{{ project.jobName || 'Untitled Project' }}
|
{{ project.customer?.company || '—' }}
|
{{ formatCurrency(calculateQuoteTotal(project).systemTotal) }}
|
{{ formatDate(project.createdAt) }}
|
|
|
|
No projects found Try changing your filter or search query |
||||||
No clients yet
Add your first client to get started
{{ clients.length }} client{{ clients.length !== 1 ? 's' : '' }}
No clients yet
Add your first client to get started
| Company | Contact | City | Quotes | ||
|---|---|---|---|---|---|
| {{ client.company }} | {{ client.contactName || '—' }}· {{ client.title }} | {{ client.email || '—' }} | {{ client.city }}, {{ client.state }} — | {{ quotes.filter(q => q.clientId === client.id).length }} | |
|
No clients found Click "Add Client" to create your first client record |
|||||
Open quotes you're working to win.
This shows on proposals and work orders
Want a quick guided tour? Takes about 2 minutes.
Add equipment, set your markup, and generate a professional proposal — all in a few minutes.
Where your quotes stand right now — from first draft to closed deal.
Quotes not yet won. Tap a row to edit — mark as Won to move it to Projects. Won quotes also live in the Projects tab for installation tracking. Filtered by status. Tap a row to open the editor.
| Quote # | Client / Project | Created | Total | Status | |
|---|---|---|---|---|---|
| {{ quote.quoteNumber }} CO #{{ quote.changeOrderNumber }} |
{{ quote.jobName || 'Untitled Job' }}
{{ quote.customer?.company || '—' }}
|
{{ formatDate(quote.createdAt) }} | {{ formatCurrency(calculateQuoteTotal(quote).systemTotal) }} | ||
|
No {{ dashboardFilter === 'all' ? 'open' : dashboardFilter }} quotes Hit "Start New Quote" to build your first one. No quotes with this status yet. |
|||||
No {{ dashboardFilter === 'all' ? 'open' : dashboardFilter }} quotes
Start a new quote — or won quotes are in Projects. No quotes with this status yet.
Build your go-to product library. Save equipment you use often so you can add it to quotes in seconds.
| Mfg | Model | Description | Cost | |
|---|---|---|---|---|
| {{ product.mfg }} | {{ product.model }} | {{ product.desc }} | {{ product.cost ? formatCurrency(product.cost) : '—' }} |
{{ catalogManifest.brands.length }} brands • {{ catalogTotalProducts.toLocaleString() }} products • growing every week
Verify your email to upgrade
Check your inbox and spam/junk folder for a verification link.
Manage your business profile, branding, and defaults.
Setting your internal labor costs is essential for accurate profit tracking. These are what labor costs you per hour — not what you charge the client. Without these, QuoteAV can't calculate your true margins on installation and programming work. Even a rough estimate is better than leaving them at zero.
Your fully burdened hourly cost for field installation technicians (wages, insurance, vehicle, etc.)
Your fully burdened hourly cost for programming and commissioning staff.
Profit and margin figures across your quotes won't be accurate until you set your labor costs. Tip: if you're unsure, a common starting point for AV technicians is $45–$65/hr fully burdened.
Set the rates and margins for this quote. These numbers drive every calculated total — adjust them any time without affecting other quotes.
Multiplied against each product's cost to set the sell price. Higher number = wider margin.
Your sell rate per hour for on-site installation labor. Multiplied by estimated install hours per line item.
Your sell rate per hour for system programming and commissioning. Multiplied by estimated programming hours per line item.
Added as a line item at the bottom of the quote. Calculated as a percentage of total equipment sell price.
Applied to equipment sell price where required. Set to 0 for tax-exempt projects.
| Note | Qty | Mfg | Model | Description | Unit Cost | Unit Sell | Inst | Prog | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|||||||||||
| {{ formatCurrency(calculateItemSell(item)) }} | {{ formatCurrency(item.qty * calculateItemSell(item)) }} | ||||||||||
|
|
|||||||||||
{{ catalogManifest.brands.length }} brands • {{ catalogTotalProducts.toLocaleString() }} products
Labor costs not set
Profit figures only reflect equipment margins. Set your internal labor cost rates in for accurate profitability.
| System | Equip Profit | Labor Profit | Total Profit | Margin |
|---|---|---|---|---|
| {{ row.name }} | {{ formatCurrency(row.eqSell - row.eqCost) }} | {{ formatCurrency(row.instSell + row.progSell - row.instCost - row.progCost) }} | {{ formatCurrency(row.profit) }} | {{ row.margin.toFixed(1) }}% |
| Total | {{ formatCurrency((totals.equipSell || 0) - (totals.equipCost || 0)) }} | {{ formatCurrency((totals.installSell || 0) + (totals.progSell || 0) - (totals.installCost || 0) - (totals.progCost || 0)) }} | {{ formatCurrency(totals.profit || 0) }} | {{ (totals.margin || 0).toFixed(1) }}% |
Deleting this quote cannot be undone.
|
{{ companyProfile.name }}
{{ companyProfile.address }}
{{ companyProfile.city }}, {{ companyProfile.state }} {{ companyProfile.zip }}
{{ companyProfile.phone }}
{{ companyProfile.email }}
|
PROPOSAL
Quote # {{ activeQuote.quoteNumber }}
Date {{ formatDate(activeQuote.createdAt) }}
Valid Until {{ formatDate(getExpiryDate(activeQuote.createdAt)) }}
|
|
Prepared For
{{ activeQuote.customer?.company || '—' }}
{{ activeQuote.customer.contactName }}
{{ activeQuote.customer.email }}
|
Project
{{ activeQuote.jobName }}
{{ activeQuote.site.address }}, {{ activeQuote.site.city }}, {{ activeQuote.site.state }}
Prepared By
{{ companyProfile.preparedByName }}
{{ companyProfile.preparedByTitle }}
|
| Qty | Manufacturer | Model | Description | Unit | Total |
|---|---|---|---|---|---|
| {{ item.name }} | |||||
| {{ item.qty }} | {{ item.mfg }} | {{ item.model }} | {{ item.desc }} | {{ formatCurrency(calculateItemSell(item)) }} | {{ formatCurrency(item.qty * calculateItemSell(item)) }} |
| {{ terms.installLabel }} | {{ formatCurrency(totals.installSell) }} |
| {{ terms.progLabel }} | {{ formatCurrency(totals.progSell) }} |
{{ companyProfile.paymentTerms }}
{{ companyProfile.proposalFooter }}
|
WORK ORDER
Project #{{ activeQuote.quoteNumber }}
|
{{ companyProfile.name }}
{{ companyProfile.address }}
{{ companyProfile.city }}, {{ companyProfile.state }} {{ companyProfile.zip }}
{{ companyProfile.phone }}
|
{{ activeQuote.notes }}
| Qty | Done | Item Description | Model / Part # |
|---|---|---|---|
| {{ item.name }} | |||
| {{ item.qty }} |
{{ item.mfg }}
{{ item.desc }}
INSTALL NOTE: {{ item.notes }}
|
{{ item.model }} | |
|
{{ companyProfile.name }}
{{ companyProfile.address }}
{{ companyProfile.city }}, {{ companyProfile.state }} {{ companyProfile.zip }}
{{ companyProfile.phone }}
{{ companyProfile.email }}
|
INVOICE
Invoice # INV-{{ activeQuote.quoteNumber }}
Quote Ref {{ activeQuote.quoteNumber }}
Date {{ formatDate(activeQuote.createdAt) }}
Terms {{ companyProfile.paymentTerms.split('\n')[0] }}
|
| Equipment & Materials | {{ formatCurrency(totals.equipSell) }} |
| Installation Labor | {{ formatCurrency(totals.installSell) }} |
| Programming & Commissioning | {{ formatCurrency(totals.progSell) }} |
| Freight & Shipping | {{ formatCurrency(totals.freight) }} |
| Subtotal | {{ formatCurrency(totals.systemTotal - totals.tax) }} |
| Sales Tax ({{ activeQuote.settings?.taxRate || 0 }}%) | {{ formatCurrency(totals.tax) }} |
|
Amount Due
|
{{ formatCurrency(totals.systemTotal) }}
|
{{ limitModalConfig.current }} of {{ limitModalConfig.max }} {{ limitModalConfig.resource }} on free plan
You've used all {{ limitModalConfig.max }} {{ limitModalConfig.resource }} on the free plan — that means QuoteAV is working for you. Go unlimited so nothing slows you down.
Tip: Mark existing quotes as Won or Lost to free up slots.
Quote. Propose. Win.
This 2-minute guide walks you through everything — from your first quote to sending a proposal. Let's go.
Your pipeline at a glance. Every quote flows through four stages:
Hit Start New Quote from the Dashboard. You'll pick two things:
You can also link a client from your contacts — their info auto-fills into the quote.
This is where you build. The sidebar tabs walk you through each section:
Everything autosaves as you work. No save button needed.
Three ways to add gear to a quote:
Sell prices calculate automatically from your markup. You set cost — QuoteAV handles the math.
Every line item has an optional Install Note — specific instructions for your crew on-site.
"Mount 65" display at 54" AFF. Route HDMI through west wall cavity. Label cable CH-1 at rack."
Generate all three from the editor sidebar. Change a price once — every document updates.
Won a job and the scope changed? Create a Change Order from any won quote — it copies everything so you can adjust.
Your first quote takes about 5 minutes. Hit Create My First Quote and try it on a real job.
One more thing — head to Settings to add your company name, address, and logo. That info shows on every proposal.
Reopen this guide anytime: Settings → Show Guide
Select your project type and scope.
Name your project and optionally link a client.
Parsing Excel file...
Review the parsed data before importing.
No quotes linked to this client yet.