Free HVAC Material Cost Tracker and Price Book Template
One sheet for everything you buy: your cost, supplier and the date you checked it, a sell price from your markup, and a count of prices that have gone stale.

An HVAC Price Book Template That Tells You When Prices Are Stale
Every estimate is only as good as the costs behind it. If the condenser price in your head is from last spring, the margin on today's quote is a guess. This template is a single price book for what you buy: one row per item with its category, supplier, unit, your cost and the date you last checked it. It applies your markup by category to give a sell price, and at the top it counts the items you haven't updated in 90 days.
Inside the file it's called the HVAC Price Book Template. It's for owners and office staff who want one place to update when a supplier sends a new price sheet, instead of a dozen old estimates to dig through.
Free, and it downloads straight away, no email needed. For how to organize a price book and how often to refresh it, read the HVAC price book guide.
What's in the Material Cost Tracker Template
Three tabs. Amber cells are inputs; the sell price, counts and averages are protected formulas.
Start Here
Four steps: set markups, enter what you buy, watch the stale count, copy prices into estimates.
Settings
Your company block and default markup for each category: Equipment 40%, Materials 35%, Parts 100%, Refrigerant 200%, Other 15%, with a note on typical ranges beside each. The labor and quote settings are there too, matching the estimate templates.
Price Book
Columns for category, item, supplier, unit, your cost, last updated, markup, sell price and notes, across 200 rows, with the header frozen as you scroll and filter arrows on it (unprotect the sheet to sort or filter). Category and unit are dropdowns.
Summary line
At the top of the Price Book: the number of items, how many haven't been updated in 90 or more days (or have no date), and the average markup across all items.
How to Fill In the Material Cost Tracker
- 1
Set your markups
Change the five category markups on Settings to what you actually charge. Every sell price follows.
- 2
Replace the starter items
The 31 starter rows use sample suppliers such as ABC Supply, XYZ Distributor and Local store. Overwrite them with your own items, suppliers and costs, or clear them and start fresh.
- 3
Add what you buy
One row per item: category, item name with size or rating, supplier, unit (each, linear ft, sq ft, lb, hour, job, roll, box) and your cost.
- 4
Date every price
Enter the date you confirmed each cost. A row with no date counts as stale, so the count stays honest.
- 5
Override where it makes sense
Type a different markup on any row that needs it, such as a low-cost part you mark up more or a big piece of equipment you mark up less.
- 6
Use the notes column
Part numbers, a contact at the counter, a quantity break, or a substitute when the usual item is out.
- 7
Refresh quarterly
Unprotect the sheet (Review › Unprotect Sheet, no password), sort by Last updated, call or check your suppliers for the oldest rows, and update cost and date together. Watch the stale count fall.
Worked Example: Five Items From the Starter List
Example only, using starter rows in the file and the default markups.
The average shows as 57% (57.4%) because 8 parts rows at 100% and one refrigerant row at 200% sit next to 10 equipment rows at 40%. On a real replacement, where equipment is most of the cost, the blended markup is far closer to 40%.
All 31 starter rows carry the same date, so on December 9, 2026 the stale count jumps from 0 to 31. Your own list will age row by row. To turn markup into the margin you'll see on a job, use the HVAC markup calculator.
Material Cost Tracker Template FAQ
Can I compare suppliers side by side in this material cost tracker?
Each row has one supplier and one cost. To compare, enter the same item once per supplier, then sort or filter on the Item column to see the rows together. The header row has filter arrows, but the sheet is protected and Excel blocks sorting and filtering on a protected sheet, so use Review › Unprotect Sheet (no password) first.
How does the stale price count work?
It counts every item whose Last updated date is more than 90 days before today, plus any item with no date at all. Update the cost and the date when you check a price and the count drops.
Can I set a different markup on one item?
Yes. The markup fills in from the item's category on the Settings tab, but the cell is an input. Type a different percentage on that row and only that item's sell price changes.
Why is the average markup so high?
It's a simple average across rows, not weighted by cost. A $25 capacitor at 100% counts the same as a $3,400 condenser at 40%, so a list with many parts and refrigerant rows shows a higher average than your jobs actually earn.
How many items does the price book hold?
200 rows. It comes with 31 starter items across furnaces, AC condensers, a coil, thermostats, a capacitor, a contactor, a condensate pump, filters, flex and sheet metal duct, registers and grilles, line sets, a disconnect, R-410A, a permit and disposal.
Does it work with the estimate templates?
Yes. It uses the same five categories (Equipment, Materials, Parts, Refrigerant, Other) and the same units as the estimate templates, so an item's cost and category copy straight into an estimate line and take the same markup.
Related Guides and Calculators
Rather Do This in an App?
EstimateKit does this in an app, $49 a month for the whole crew, 14-day free trial, no card.
Start Free Trial