HVAC contractors send estimates before replacing a system, installing new equipment, running ductwork, or making a repair that costs more than a typical service call. Homeowners often collect two or three quotes and compare equipment brand, efficiency rating, warranty, and total price, so a clear written quote matters.
When to use estimates: Use estimates to provide project quotes and get client approval before starting work. Once approved, convert your estimate to an invoice with one click to collect payment.
Create an invoice for payment collection
Upload logo
PDF will be generated with filename:
Invoice_1001_Client_2026-10-14.pdf
Two quotes with different efficiency ratings or sizes are not comparable, and listing the exact equipment prevents a customer claiming they were promised something different.
Showing that the system was sized by a Manual J calculation rather than guesswork backs up your price and prevents callbacks over comfort problems.
Customers assume everything needed is included. Listing each item shows where your price ends and what would be a change order.
Permit costs and timing are often missed, and unpermitted work can cause trouble for the homeowner when selling.
Disposal is real labor and cost. Stating it avoids surprises and shows you will follow refrigerant handling rules.
Hidden problems such as rotted platforms, undersized electrical circuits, asbestos-wrapped ducts, or poor access can raise the cost. Naming them up front makes later change orders easier to accept.
Equipment prices change and manufacturer rebates end. An expiration date, usually 15 to 30 days, protects your margin.
| Service | Priced | Typical range |
|---|---|---|
| Service call / diagnostic fee | flat fee | $75-200 |
| Hourly labor (technician) | per hour | $85-175 |
| Seasonal tune-up (AC or furnace) | per visit | $89-200 |
| Refrigerant recharge (R-410A) | per lb | $50-150 |
| Capacitor or contactor replacement | flat fee | $150-450 |
| Condensate drain line clearing | flat fee | $100-250 |
| Residential split system replacement (installed) | flat fee | $6,500-14,000 |
| Ductwork installation or repair | per linear ft | $25-60 |
Typical US ranges. Rates vary by region, experience, and job size.
Presenting three tiers, such as a single-stage, two-stage, and variable-speed system, lets the customer choose based on budget instead of just comparing you to the cheapest bidder. Show the price difference and what each tier adds in comfort and efficiency.
Add equipment cost, materials, labor hours at a loaded rate, permit fees, overhead, and a target margin. Many shops aim for gross margins of 35 to 50 percent on installs. Adjust after checking the local market, but do not start with the lowest bid.
Equipment and refrigerant costs can change between quote and install. Include a price validity period and note that the price may be adjusted if the order is delayed by the customer.
Utility rebates, manufacturer incentives, and tax credits can lower the net cost, but eligibility varies. List them as possible savings apart from your price so you are not promising what you do not control.
Many contractors provide free estimates for replacements and installs, since the sale covers the cost of the visit. Charging a fee is common for repair diagnostics and for detailed work such as duct design or load calculations, and it can be credited if the customer hires you.
Fifteen to thirty days is typical. Equipment costs, rebate programs, and your schedule can all change, so put an expiration date on the quote.
Stop and write a change order with the added work, cost, and any schedule impact, and get the customer to approve it before continuing. Without that approval, it is hard to bill for the extra work.
Yes. Once the customer accepts, use the quote as the basis for your deposit invoice and final invoice, adjusting for any approved change orders. Keeping the same line items makes the final bill easy to reconcile with the original quote.
Use the HVAC invoice template to bill the client, or convert this estimate once it's approved.
HVAC invoice template