TemplateLast reviewed November 4, 2026

Change Order Log Template with Punch List (Free .xlsx)

Free change order log template with a punch list: approval status, days to approve, a running contract value, and open and overdue items by area.

On a commercial job, the contract you signed is rarely the contract you finish. Owners add scope, the GC moves a beam, the field hits a slab conflict, and each change gets priced and decided on its own schedule. Our change order log template keeps every one of those changes in a single list. Each row shows what the contract is worth after it, and a punch list on the next tab tracks closeout by area.

Download the change order log template. It’s a plain .xlsx file with no macros and no sign-up. Type in your original contract value, replace the sample orders and punch items with your own, and the running contract value, pending exposure and punch list counts recalculate.

Video walkthrough

This short captioned walkthrough goes through the three working sheets, from logging a change order to reading the Dashboard.

Change Order Log Template walkthrough

Who this template is for

We built this for commercial mechanical, electrical and plumbing subcontractors who run their change orders out of email threads and a running tally in someone’s head. It suits a project manager with a handful of open jobs, or an office lead who prices changes and chases approvals for the field.

It answers four questions:

  1. What is the contract worth today, counting only what has been approved?
  2. How much work are we carrying that nobody has signed off yet?
  3. How long do our change orders sit before someone decides them?
  4. What is left on the punch list, who owns it, and what is already late?

It is one file per job. If you are still pricing the work rather than changing it, start with our commercial HVAC bid template and come back here once the contract is signed.

What’s in the workbook

There are four sheets, in this order:

  1. Instructions covers setup, the color legend, how to open the file in another spreadsheet app, the limitations, and a note that the formulas, layout and sample figures were written from scratch for this file.
  2. Change Orders holds the project name and the original contract value at the top, then one row per change order. You enter the CO number, date submitted, description, who requested it, the amount requested, the status, the approved amount and the date decided. The sheet works out Days open, the Running contract value and a Row check.
  3. Punch List has one row per closeout item: item number, area or room, description, trade, responsible person, date added, due date, status and date closed. Days open, an Overdue flag and a Row check are calculated.
  4. Dashboard holds the as-of date and the rollups for both lists, plus a Data check.

Blue cells are for typing, yellow cells calculate, and green cells hold the headline results.

How to set it up

  1. If your spreadsheet app opens the file read-only, turn on editing so the formulas calculate.
  2. On Change Orders, type the project name in B1 and the original contract value in B2.
  3. Clear the sample change orders and add yours. Keep each CO number unique; your own format (PCO-14, COR-007, whatever the job uses) works fine. Requested by and Status are dropdowns.
  4. When an order is decided, set its status and type the date decided. An Approved order also needs the approved amount, which is often lower than what was requested.
  5. On Punch List, clear the sample items and add your own, each with an owner and a due date.
  6. On Dashboard, set the as-of date. The sample date is typed in so the sample numbers stay put. Type =TODAY() in that cell when you start using the log for real.
  7. Fix any Row check that doesn’t read OK, then confirm Data check on Dashboard reads OK.

Change Orders sheet showing six sample change orders with date submitted, description, requested by, amount requested, status, approved amount, date decided, days open, running contract value and row check

Why only approved orders move the contract

The main calculation is the Running contract value column. Each row shows the original contract plus every approved amount on that row and above it, so you can read the contract value at any point in the job.

Status decides what counts. An order marked Approved adds its approved amount. Pending, Rejected and Void orders add nothing, however large the request, so the running value only ever reflects signed changes.

In the sample job the original contract is $486,500. CO-001, four added VAV boxes, was requested at $12,400 and approved at $11,800, so the running value after it is $498,300. CO-003, an extra crane lift, was rejected, and the running value on its row stays at $502,150, the same as the row above. CO-004 is a credit for a deleted exhaust fan. Credits go in as negative amounts, so it brings the running value down to $497,650. The two pending orders at the bottom leave it at $497,650.

Owners and GCs often approve less than you asked for, so the approved amount has its own column and the log keeps both numbers.

Pending orders as exposure

The Dashboard totals pending orders separately as Pending value: work your crews may already be doing that isn’t in the contract yet. In the sample, 2 orders are pending, worth $12,050 together.

Days open measures how long that money has been waiting. While an order is Pending, it counts from the date submitted to the as-of date. Once it is decided, it counts from submitted to decided. The Dashboard reports the oldest pending order in days. In the sample that’s CO-005, a condensate drain reroute, open for 25 days. When that number climbs, it’s time to chase a signature.

The Dashboard also shows the approval rate, which is approved orders divided by approved plus rejected (75.0% in the sample; void orders are left out), and the average days to approve (12.0 days across the three approved orders).

The punch list

The second half of the file is for closeout. Each item carries an area or room, so you can walk a floor and sort by it, plus a trade, a responsible person, a date added and a due date. Status runs Open, then Ready for review once the work is done, then Closed with a date closed once someone has checked it.

An item is overdue when it isn’t Closed and its due date is before the as-of date. Ready for review items still count as open, because nobody has signed them off.

Punch List sheet showing eight sample punch items with area, description, trade, responsible person, date added, due date, status, date closed, days open and overdue flag

Worked example from the sample data

The sample is a made-up mechanical subcontract on a medical office building, with six change orders and eight punch items and an as-of date of 2026-11-02. Here is what the Dashboard shows:

MetricResult
Original contract$486,500
Approved changes$11,150
Revised contract value$497,650
Change as share of original2.3%
Pending change orders2
Pending value$12,050
Approval rate75.0%
Average days to approve12.0
Oldest pending (days)25
Punch items8
Punch items open5
Punch items overdue2
Punch closed share37.5%

And here is the running contract value row by row:

CO #StatusRunning contract value
CO-001Approved$498,300
CO-002Approved$502,150
CO-003Rejected$502,150
CO-004Approved (credit)$497,650
CO-005Pending$497,650
CO-006Pending$497,650

The last row equals the revised contract value on the Dashboard, which is a quick way to check the log. Approve CO-005 at $9,100 and the running value on its row and the one below moves up by that amount, while Pending value drops to the one order still waiting.

Dashboard sheet showing the as-of date, original and revised contract value, approved and pending changes, approval rate, days to approve, oldest pending order, punch list counts, rows to check and data check

Every figure here comes from sample data. Your approval rate and turnaround depend on your customers and contracts, so read these as an example of what the sheet reports, not as a benchmark.

Using it in another spreadsheet app

The file is a standard .xlsx with no macros, so most spreadsheet apps can open it or import it:

  1. Download the workbook from the template link.
  2. In your spreadsheet app, choose File > Import (or File > Open) and select the file.
  3. If you’re asked, choose to insert it as new sheets.
  4. Check Change Orders and Dashboard after the import.

Formatting, dropdowns and colors can change on import, so check the results and the dropdowns before you rely on the file or share it.

How the checks keep the totals honest

A paste can get around a dropdown, so every row ends in a Row check. It reads OK, or the first problem it finds. Check ID means the row has data but no CO or item number. Duplicate ID means the number appears twice. Check inputs means something is missing or doesn’t make sense: no date submitted, an amount that isn’t a number, an Approved order with no approved amount, a decided order with no date decided, an approved amount on an order that wasn’t approved, a decision dated before submission, or a punch item due before it was added.

Rows to check on the Dashboard counts those rows, plus a blank or invalid original contract or as-of date. Until it reads 0, the Dashboard results read Check data rather than a total built on bad rows. Data check reads OK when everything lines up.

Limitations to know before relying on it

  • It’s one job per file. To track several jobs, keep a copy per job.
  • Change Orders and Punch List hold up to 497 change orders and 500 punch items. Formulas, dropdowns and checks stop at row 501.
  • Days are calendar days, not working days.
  • It doesn’t track retainage, lien waivers, billing against the revised contract, or the schedule impact of a change.
  • It records decisions, but it doesn’t route approvals or store signed change order forms. Keep the signed paperwork with your contract documents. Nothing in the file is contract or legal advice.

Most teams outgrow the spreadsheet when crews find changes on site faster than the office can type them up, and the change needs to be captured while the crew is still there. Our glossary entry on change order capture explains what that looks like, and our guide to commercial mechanical contractor software compares the systems built for it. You’ll find more free tools on the free field service templates page.

Until then, grab the change order log template, type in your original contract value, and log your open changes so you know what the job is worth today.

Frequently asked questions

  1. What should a change order log include?

    Each change needs a number, the date it was submitted, a short description, who asked for it, the amount requested, its status, the approved amount and the date it was decided. With those, the log can show how long each order sat open and what the contract is worth after it.

  2. How does the template track the revised contract value?

    Type the original contract value once at the top of Change Orders. Each row then shows the running contract value: the original plus every approved amount on that row and above. Pending, rejected and void orders never change it. The Dashboard shows the revised total and, separately, what is still pending.

  3. What is a punch list, and when is an item closed?

    A punch list is the list of small items left to finish or fix before a space is handed over. In this template each item has an area, a trade, a responsible person, a date added and a due date. Mark it Ready for review when the work is done, and Closed, with a closed date, once it has been checked.

  4. Can I log credits as well as extras?

    Yes. Type a credit as a negative amount, both requested and approved. An approved credit lowers the running contract value on its row and every row below it, and it counts toward the approved changes total like any other approved order.

  5. When does a spreadsheet change order log stop being enough?

    When crews find changes on site faster than the office can type them up, or several people need to price and approve changes at once. At that point, see what field-side change order capture looks like in software built for it.

Trust signal

Fact Checked & Editorial Guidelines

Every post on this site is fact-checked against the policy below before the "Last reviewed" date is updated. If a single item below fails verification, the post does not go live.

  • Every claim traces to a source.

    Pricing, feature lists, integrations, and headquarters are taken from vendor product pages, documentation, or signed contracts — never repeated from secondary blogs. Where a claim is sourced from a single vendor's marketing, it is qualified as such.

  • Vendor relationships are disclosed in-line.

    If a review covers a platform whose vendor has provided trial access, sandbox access, or paid placement on a sister property, that relationship is stated in the review's methodology footer — not buried in a sitewide disclosure page.

  • Pricing is rechecked at every review cycle.

    Vendor pricing changes constantly. The 'Last reviewed' date on each post is the date the price line was last re-verified against the vendor's public pricing page. If you spot a stale price, the contact page accepts corrections.

  • Corrections are logged, not silently rewritten.

    Material factual corrections after publication get a correction note dated and appended to the post. We don't pretend the prior version never said what it said.

Spotted an error? Send a correction via thecontact page — corrections are logged with a dated note on the post.

Trust signal

Editorial Review & Methodology

Reviews and comparisons on this site follow a single documented methodology — the same rubric, applied identically to every platform, on every review cycle.

  • Five-criteria scoring rubric, applied identically to every platform.

    Usability, pricing transparency, feature depth, support quality, and integrations. Each criterion scored 0–10 with documented weighting. The rubric is published on the methodology page and does not change between platforms in the same review.

  • Hands-on testing where vendor trial access permits.

    If a vendor offers trial or sandbox access, the reviewer spins up an account and works through the documented evaluation script before scoring. Where access is enterprise-gated, the access type is disclosed and scoring draws on product documentation, verified buyer reviews, and analyst sources.

  • Editorial independence from commercial relationships.

    No vendor pays for placement, previews scores, or controls the content of a review. Affiliate links, where present, do not change ranking — picks are ordered by score, not by commercial yield. If a conflict of interest exists for a specific review, it is disclosed within that review.

  • Reviews get re-checked, not just re-dated.

    Each 'Last reviewed' update means the rubric was re-applied — pricing, feature inventory, integration list, and any material vendor changes since the prior review. A bare date bump without re-evaluation is not a re-review.

The full rubric, weighting, and review-cycle process is on themethodology page.