Skip to main content
๐Ÿ“Š

Construction Cost Tracking Spreadsheet in Excel

6 min readOctober 27, 2026

Quick Answer: A construction cost tracking spreadsheet compares four numbers for every phase or cost code: the original budget, approved change orders, what you have committed in contracts and orders, and what you have actually paid. The difference between the revised budget and the forecast final cost is your variance. Fill the paid column from bank and card statements, and the same sheet produces the summary a lender wants with each draw request.


Whether you are a contractor running a remodel or an owner building your own house, the question is the same every week: will this project finish on budget, and if not, where is it going over? A cost tracker answers it by showing money committed before it is spent, so you see an overrun when the contract is signed instead of when the last invoice arrives.

Drop your bank statement here

PDF or OFX ยท Max 4.4 MB

Uploaded over an encrypted connection. We never ask for your bank login. Privacy

Preview free with no account. Free account to download.

Why track committed costs, not just payments?

A payments-only tracker is a monthly expenses spreadsheet with a project name on it: it tells you where money went, not where the project is heading. On a build, most of the cost is agreed long before it is paid. The framer's contract, the window order and the cabinet deposit lock in amounts weeks ahead. Tracking those commitments is what turns a list of receipts into an early warning.

The core idea for each line:

  • Revised budget = original budget + approved change orders
  • Committed = signed contracts and purchase orders for that line
  • Paid = money that has left your account for that line
  • Forecast final cost = the larger of committed and your best estimate of the final cost
  • Variance = revised budget โˆ’ forecast final cost (negative means over)

The Budget sheet

One row per phase or cost code. A simple house-build list might be:

CodePhaseOriginal budgetChange ordersRevised budgetCommittedPaidForecast finalVariance
100Site work and foundation$42,000$3,500$45,500$46,200$46,200$46,200-$700
200Framing$68,000$0$68,000$64,800$51,840$64,800$3,200
300Roofing$18,500$0$18,500$19,900$0$19,900-$1,400
400Windows and doors$24,000$2,100$26,100$26,100$13,050$26,100$0
500Plumbing, electrical, HVAC$61,000$0$61,000$38,000$9,500$62,500-$1,500
600Interior finishes$85,000$0$85,000$12,000$0$85,000$0
900Contingency$20,000-$5,600$14,400$0$0$14,400$0
Total$318,500$0$318,500$207,000$120,590$318,900-$400

Notice the contingency line: approved change orders are funded from it, so the total revised budget stays the same until contingency runs out. In this example the project forecasts $400 over, mostly from roofing and the mechanicals, while framing came in under. In the plumbing row, the forecast is higher than committed because the electrical and plumbing contracts are signed but the HVAC bid still to come is expected to run high.

Format the Forecast and Variance columns with conditional formatting so negative variances show red. You will scan this sheet weekly; color makes problems jump out.

Getting the forecast column right

Forecast final is the only column that takes judgment, and it is where trackers drift into optimism. For lines that are fully contracted at a fixed price, forecast equals committed. For lines still open, add committed to an honest estimate of what is left: =[@Committed]+[@[Cost to complete]], with a Cost to complete column you update weekly. For lines where work is done and paid, forecast equals paid, and any committed amount not spent should be closed out so it stops inflating the figure. The trap is leaving forecast at the original budget for lines you have not thought about recently; if nothing has been committed against interior finishes yet, ask whether $85,000 still reflects the selections being discussed, not the number from the first estimate.

The three logs that feed it

Keep the Budget sheet formulas only. Data lives in three log tabs, each one row per event.

Commitments log. Date signed, vendor, cost code, description, amount, and a status (Open, Complete). Committed on the Budget sheet is =SUMIFS(Commit[Amount],Commit[Code],[@Code]), per Microsoft's SUMIFS syntax with the sum range first.

Change order log. Number, date, description, requested by, cost code, amount, approved (Yes/No), and which line funds it (usually contingency). Only approved rows count toward revised budget: =SUMIFS(CO[Amount],CO[Code],[@Code],CO[Approved],"Yes"). Unapproved change orders are a list of risks; total them separately so you know what is pending.

Payments log. Date, payee, cost code, amount, method, invoice or receipt reference, and which statement it came from. Paid is the same pattern against this log. To show the phase name on each payment row for readability, use XLOOKUP: =XLOOKUP([@Code],Budget[Code],Budget[Phase],"check code"), which flags any payment typed with a code that does not exist.

Filling the payments log from statements

The statement is the record you cannot argue with. Once a week or at least monthly, download the project's bank and card statements and get them into rows; a CSV export works, and for PDF statements a converter such as QuickBankConvert produces columns for date, description and amount that you paste under the existing rows. Then assign each line a cost code.

A few practical tips:

  • Use one account and one card for the project. It makes the statement a complete project ledger. On a house build, this matters even more: mixing groceries with lumber makes the tracker a forensic exercise.
  • Write the cost code on every receipt and in check memos, so coding takes seconds.
  • Big-box store runs often cover several phases. Split the line into two or three rows by code using the receipt.
  • Card refunds and returns are negative rows in the same code, not deletions.

If the same suppliers recur, a categorization rule table speeds the coding; bank statement categorization explains the approach. Contractors running several jobs at once will want the job-level bookkeeping in construction bookkeeping for a small business, with this sheet copied once per job.

How do you build a draw request summary?

Construction loans release money in draws as work progresses, and lenders typically ask for a summary of budget, work completed and amounts already drawn, often with an inspection. Exact forms and rules come from your lender, but the spreadsheet can produce the numbers:

LineRevised budgetPercent completeEarned to datePreviously drawnThis draw
Site work and foundation$45,500100%$45,500$42,000$3,500
Framing$68,00080%$54,400$34,000$20,400
Windows and doors$26,10050%$13,050$0$13,050

Earned to date is revised budget times percent complete. This draw is earned minus previously drawn. Attach the payments log rows and statements that support the paid amounts. Lenders may also review your bank statements during the loan; bank statements for a construction loan describes what they look for.

Using it as a house construction expense tracker

Owner-builders can drop the cost code jargon and use rooms or trades as lines, but keep the commitments column. The common house-build surprises are allowances (the builder's budget for tile or fixtures that you then exceed), change orders agreed on site without paperwork, and permit or utility connection fees no one budgeted. Give each of these a row from day one, even at zero, so the tracker shows them when they arrive. And keep every receipt: when the project ends, the cost records are the start of your home's cost basis.

Weekly review checklist

  1. Code new statement lines into the Payments log.
  2. Add any contracts or orders signed this week to Commitments.
  3. Log change orders the day they are agreed, approved or not.
  4. Update forecast final for any line where the remaining work has changed.
  5. Read the Variance column top to bottom and note the reason beside every red line.

Frequently Asked Questions

What should a construction cost tracking spreadsheet include?

For each phase or cost code: original budget, approved change orders, revised budget, committed amounts, paid amounts, forecast final cost and variance, fed by separate logs for commitments, change orders and payments.

What is the difference between committed and paid costs?

Committed costs are amounts you have agreed to in signed contracts or orders, whether or not you have paid them yet. Paid costs have already left your account. Tracking commitments shows an overrun before the bills arrive.

How do I track change orders in Excel?

Keep a log with number, date, description, cost code, amount and approval status. Add only approved amounts to the revised budget, and fund them from the contingency line so you can see how much cushion remains.

Can I use this spreadsheet for building my own house?

Yes. Use rooms or trades as lines, keep one bank account and card for the build, and add rows for allowances, permits and utility connections at the start so they are not forgotten.

Can a cost tracking spreadsheet replace accounting software?

For one project or a homeowner's build, a spreadsheet is usually enough. A contractor running several jobs with payroll and progress billing will want accounting software with job costing, using the spreadsheet for weekly forecasting.

Ready to convert your bank statement?

Free to preview. No bank login. Results in about a minute.

Convert a statement