---
title: How do I check vendor invoices against purchase orders and approved change orders with AI? | AEC Agents
url: https://aecagents.si/use-cases/vendor-invoices-vs-po-change-orders
description: Vendor invoices pile up against purchase orders, blanket POs and a change-order log that lives in another folder, and the usual misses are quantity or price over the PO, billing against a change that was never approved, duplicate invoice numbers and lines with no PO at all. Have Claude or ChatGPT read each invoice PDF into one table, and have Copilot in Excel or Gemini in Google Sheets match every line to the open PO and approved CO register so overages and orphans surface before accounts payable releases the payment. Whether an invoice is payable, and whether an overage is a change, stays with the PM and accounting.
last_modified: 2026-11-11
source: AEC Agents (free, open workflows; not engineering advice)
---

[AI assists](https://aecagents.si/use-cases/vendor-invoices-vs-po-change-orders#honesty-labels)Workflow guide · not independently tested

# How do I check vendor invoices against purchase orders and approved change orders with AI?

Vendor invoices pile up against purchase orders, blanket POs and a change-order log that lives in another folder, and the usual misses are quantity or price over the PO, billing against a change that was never approved, duplicate invoice numbers and lines with no PO at all. Have Claude or ChatGPT read each invoice PDF into one table, and have Copilot in Excel or Gemini in Google Sheets match every line to the open PO and approved CO register so overages and orphans surface before accounts payable releases the payment. Whether an invoice is payable, and whether an overage is a change, stays with the PM and accounting.

[Project Manager](https://aecagents.si/roles/project-manager) · Construction · Claude · ChatGPT · Microsoft Excel · Microsoft Copilot · Google Sheets

Content updated 11 November 2026 · Tool links listed below; vendor features and pricing change, so confirm with the vendor

## Short answer

Use Claude or ChatGPT, then Copilot in Excel or Gemini in Google Sheets: Claude or ChatGPT reads vendor invoice PDFs into one Invoices table and proposes matches to open PO lines and approved change orders; Copilot or Gemini flags no-PO lines, quantity or dollar overages against remaining PO balance, unit prices above the PO, billing against unapproved COs and duplicate invoice numbers. Vendor invoices pile up against purchase orders, blanket POs and a change-order log that lives in another folder, and the usual misses are quantity or price over the PO, billing against a change that was never approved, duplicate invoice numbers and lines with no PO at all. Have Claude or ChatGPT read each invoice PDF into one table, and have Copilot in Excel or Gemini in Google Sheets match every line to the open PO and approved CO register so overages and orphans surface before accounts payable releases the payment. Whether an invoice is payable, and whether an overage is a change, stays with the PM and accounting. A person still checks: every match and every flag with the PM and AP against the invoice PDF and the PO/CO registers before payment is released; payability and change entitlement stay with them under the contract.

## AI tie-in

**Tool:** Claude or ChatGPT, then Copilot in Excel or Gemini in Google Sheets

Claude or ChatGPT reads vendor invoice PDFs into one Invoices table and proposes matches to open PO lines and approved change orders; Copilot or Gemini flags no-PO lines, quantity or dollar overages against remaining PO balance, unit prices above the PO, billing against unapproved COs and duplicate invoice numbers.

### Prompt 1

```
Read these vendor invoices [upload]. Build a table with one row per invoice line: vendor, invoice number, invoice date, PO number as written, line description, quantity, unit, unit price, amount, tax or freight if shown separately. Copy values exactly and write NOT SHOWN instead of guessing. Then propose a match to this PO register [paste] and this approved CO register [paste] with a confidence word (clear, likely, unsure). Do not decide whether an invoice is payable.
```

### Prompt 2

```
EXAMPLE DATA ONLY. Here are my PO, Approved CO and Invoices tabs [paste the example rows]. Write Excel formulas (or a step-by-step Copilot plan) that match each invoice line to a PO line, compute remaining quantity and dollars after these invoices, and flag: no PO match, quantity or dollars over remaining, unit price above PO, billing against a CO that is not approved, duplicate invoice numbers, and blank PO numbers. Use only my data; do not decide whether an invoice is payable.
```

**Human check:** Every match and every flag with the PM and AP against the invoice PDF and the PO/CO registers before payment is released; payability and change entitlement stay with them under the contract.

## The problem

Check vendor invoices against purchase orders and approved change orders with AI. This is a common, time-consuming task for a project manager.

## What this workflow does

Vendor invoices pile up against purchase orders, blanket POs and a change-order log that lives in another folder, and the usual misses are quantity or price over the PO, billing against a change that was never approved, duplicate invoice numbers and lines with no PO at all. Have Claude or ChatGPT read each invoice PDF into one table, and have Copilot in Excel or Gemini in Google Sheets match every line to the open PO and approved CO register so overages and orphans surface before accounts payable releases the payment. Whether an invoice is payable, and whether an overage is a change, stays with the PM and accounting.

**How it works:** AI drafts or analyzes. A person operates the tools, checks the work, and takes action.

**Your checkpoint:** The workbook only compares invoices with the PO and approved-CO registers you entered. An overage can be valid extra work, a bad PO entry or a pricing error, so a flag is a question for the PM, not a rejection. Payability, change entitlement and payment release stay with the project manager and accounts payable under the contract.

## Before you start

- Access to the named tool; confirm license, version and cost with the vendor.
- A small, non-confidential sample to try the workflow on first.
- A qualified person to review the output before it is used.

### Tools and access

- [Claude (Anthropic)](https://www.anthropic.com/claude)
- [ChatGPT](https://chatgpt.com/)
- [Microsoft Excel](https://www.microsoft.com/microsoft-365/excel)
- [Microsoft Copilot](https://www.microsoft.com/microsoft-365/copilot)
- [Google Sheets](https://workspace.google.com/products/sheets/)

## Follow the steps

1. Export the open purchase-order register (PO number, vendor, line description, unit, ordered quantity, unit price, amount remaining) and the approved change-order register (CO number, status, linked PO if any, description, amount). Pending or rejected COs stay off the payable list.
2. Collect this period's vendor invoices as PDFs or an AP export. Use an AI account your company allows for vendor documents.
3. Have Claude or ChatGPT read every invoice into an Invoices tab: vendor, invoice number, invoice date, PO number as written, line description, quantity, unit, unit price, amount, and tax or freight if shown separately. It copies values exactly and writes NOT SHOWN instead of guessing.
4. Have it propose a match from each invoice line to a PO line (and to an approved CO when the invoice cites one), with a confidence word (clear, likely, unsure). You fix the unsure ones.
5. Have Copilot in Excel or Gemini in Google Sheets flag: no matching PO, quantity or amount over the PO remaining balance, unit price above the PO price, billing against a CO that is not approved, duplicate invoice numbers, and invoices with no PO number shown.
6. Send the flagged list to the PM and AP before payment is released, and keep the Invoices tab as backup for what was checked.

## Try a small example

EXAMPLE DATA ONLY — fictional numbers for practice, not from a real project or a published trial. Paste the Sample input into Copilot or Gemini with the Starter prompt, then compare your flags to Expected output.

### Sample input

```
PO tab (example)
PO | Vendor | Item | Unit | Ordered qty | Unit price | Remaining qty
PO-1001 | Acme Supply | #4 rebar | ton | 40 | 920 | 12
PO-1001 | Acme Supply | tie wire | box | 20 | 45 | 8
PO-1002 | Metro ReadyMix | 4000 psi mix | cy | 120 | 145 | 35
PO-1003 | Eastside Steel | W12x26 | lf | 240 | 18.5 | 240
PO-1004 | Summit Form | form rental wk 12 | week | 4 | 2100 | 2

Approved CO tab (example)
CO | Status | Linked PO | Description | Amount / qty
CO-12 | approved | PO-1001 | extra #4 rebar | +8 ton
CO-14 | pending | PO-1003 | add W16x36 | +60 lf

Invoices tab (example)
Invoice | Vendor | Date | PO as written | Item | Qty | Unit | Unit price | Amount
INV-8801 | Acme Supply | 2026-10-28 | PO-1001 | #4 rebar | 10 | ton | 920 | 9200
INV-8802 | Acme Supply | 2026-10-29 | PO-1001 | #4 rebar | 15 | ton | 920 | 13800
INV-8803 | Metro ReadyMix | 2026-10-30 | PO-1002 | 4000 psi mix | 40 | cy | 152 | 6080
INV-8804 | Eastside Steel | 2026-10-30 | (blank) | W12x26 | 80 | lf | 18.5 | 1480
INV-8805 | Summit Form | 2026-10-31 | PO-1004 | form rental wk 12 | 3 | week | 2100 | 6300
INV-8801 | Acme Supply | 2026-10-28 | PO-1001 | tie wire | 5 | box | 45 | 225
INV-8806 | Eastside Steel | 2026-11-01 | PO-1003 | W16x36 | 40 | lf | 22 | 880
INV-8807 | Acme Supply | 2026-11-02 | PO-1001 | #5 rebar | 6 | ton | 940 | 5640
```

### Starter prompt

```
EXAMPLE DATA ONLY (not from a real project). PO tab:
PO-1001 | Acme Supply | #4 rebar | ton | 40 | 920 | remaining 12
PO-1001 | Acme Supply | tie wire | box | 20 | 45 | remaining 8
PO-1002 | Metro ReadyMix | 4000 psi mix | cy | 120 | 145 | remaining 35
PO-1003 | Eastside Steel | W12x26 | lf | 240 | 18.5 | remaining 240
PO-1004 | Summit Form | form rental wk 12 | week | 4 | 2100 | remaining 2
Approved CO tab:
CO-12 | approved | PO-1001 | extra #4 rebar | +8 ton
CO-14 | pending | PO-1003 | add W16x36 | +60 lf
Invoices tab:
INV-8801 | Acme Supply | 2026-10-28 | PO-1001 | #4 rebar | 10 | ton | 920 | 9200
INV-8802 | Acme Supply | 2026-10-29 | PO-1001 | #4 rebar | 15 | ton | 920 | 13800
INV-8803 | Metro ReadyMix | 2026-10-30 | PO-1002 | 4000 psi mix | 40 | cy | 152 | 6080
INV-8804 | Eastside Steel | 2026-10-30 | (blank) | W12x26 | 80 | lf | 18.5 | 1480
INV-8805 | Summit Form | 2026-10-31 | PO-1004 | form rental wk 12 | 3 | week | 2100 | 6300
INV-8801 | Acme Supply | 2026-10-28 | PO-1001 | tie wire | 5 | box | 45 | 225
INV-8806 | Eastside Steel | 2026-11-01 | PO-1003 | W16x36 | 40 | lf | 22 | 880
INV-8807 | Acme Supply | 2026-11-02 | PO-1001 | #5 rebar | 6 | ton | 940 | 5640
Write Excel formulas (or a step-by-step Copilot plan) that match each invoice line to a PO line, total billed against remaining PO quantity and dollars, and flag: no PO match, quantity or dollars over remaining, unit price above PO, billing against a CO that is not approved, duplicate invoice numbers, and invoice lines with no PO number. Use only this example data; do not decide whether an invoice is payable.
```

### Expected output

```
Expected flags on this example (illustrative — verify every formula yourself)
INV-8802 #4 rebar 15 ton vs remaining 12 → OVER REMAINING QTY (even after approved CO-12 +8, check whether CO qty was already added to remaining)
INV-8803 unit price 152 vs PO 145 → UNIT PRICE ABOVE PO
INV-8804 blank PO → NO PO NUMBER
INV-8805 3 weeks vs remaining 2 → OVER REMAINING QTY
INV-8801 appears twice (rebar line and tie-wire line share number) → DUPLICATE INVOICE NUMBER (confirm whether one invoice has two lines or a true duplicate)
INV-8806 cites PO-1003 / W16x36 while CO-14 is pending → BILLING AGAINST UNAPPROVED CO
INV-8807 #5 rebar on PO-1001 that only lists #4 and tie wire → NO PO LINE MATCH

Suggested Excel logic (write against your own sheet layout)
- Match key: PO & normalized item text (or a MatchPO helper column you confirm).
- Remaining after this invoice: RemainingQty - SUMIF(matched invoices, qty).
- Flag OVER REMAINING when that result is < 0.
- Flag PRICE when InvoiceUnitPrice > POUnitPrice (tolerance you set, e.g. 0).
- Flag NO PO when PO as written is blank; Flag NO LINE when match confidence is unsure/blank.
- Flag UNAPPROVED CO when invoice item/PO matches a CO row whose Status <> approved.
- Flag DUPLICATE when COUNTIF(Invoice#) > 1 and you have not marked the rows as lines of one invoice.
Do not mark any row payable or not — only flag for human review.
```

## Check the result

- Every value, citation or quantity traces back to a source document.
- Missing information is marked as missing, not filled in.

## Limits and recovery

- The workbook only compares invoices with the PO and approved-CO registers you entered. An overage can be valid extra work, a bad PO entry or a pricing error, so a flag is a question for the PM, not a rejection. Payability, change entitlement and payment release stay with the project manager and accounts payable under the contract.
- Check your organization’s data policy before sharing project files with third-party tools.

**Stop or switch when:** The source cannot be verified, permissions are missing, or the result contains unsupported facts.

## Frequently asked questions

How does AI help with this?

Claude or ChatGPT, then Copilot in Excel or Gemini in Google Sheets: Claude or ChatGPT reads vendor invoice PDFs into one Invoices table and proposes matches to open PO lines and approved change orders; Copilot or Gemini flags no-PO lines, quantity or dollar overages against remaining PO balance, unit prices above the PO, billing against unapproved COs and duplicate invoice numbers. A person still checks: Every match and every flag with the PM and AP against the invoice PDF and the PO/CO registers before payment is released; payability and change entitlement stay with them under the contract.

How do I how do I check vendor invoices against purchase orders and approved change orders with AI??

Export the open purchase-order register (PO number, vendor, line description, unit, ordered quantity, unit price, amount remaining) and the approved change-order register (CO number, status, linked PO if any, description, amount). Pending or rejected COs stay off the payable list. Collect this period's vendor invoices as PDFs or an AP export. Use an AI account your company allows for vendor documents. Have Claude or ChatGPT read every invoice into an Invoices tab: vendor, invoice number, invoice date, PO number as written, line description, quantity, unit, unit price, amount, and tax or freight if shown separately. It copies values exactly and writes NOT SHOWN instead of guessing. The full step list is above.

Does this use an AI agent or regular software?

It is labeled AI assists: AI drafts or analyzes. A person operates the tools, checks the work, and takes action.

What tools do I need?

Claude, ChatGPT, Microsoft Excel, Microsoft Copilot, Google Sheets. Confirm license, version and cost with the vendor, and try it on a small non-confidential sample first.

Has this workflow been tested?

Workflow guide · not independently tested. Written from vendor documentation and practitioner use. Labels apply to the steps described here, not every feature of a product. Links were checked when the page was written.

## Where to go next

- [How do I search project documents with AI to answer field questions, then confirm the source?](https://aecagents.si/use-cases/project-document-search)
- [How do I compare construction schedule scenarios with AI-assisted scheduling tools?](https://aecagents.si/use-cases/schedule-optimization)
- [How do I spot schedule delays and quality problems early with schedule analytics?](https://aecagents.si/use-cases/schedule-health)
- [All Project Manager workflows](https://aecagents.si/roles/project-manager)
- [All Schedules, submittals and project controls workflows](https://aecagents.si/tasks/project-controls)

## Evidence and maintenance

Written from vendor documentation and practitioner use. Labels apply to the steps described here, not every feature of a product. Links were checked when the page was written.

- [Claude (Anthropic) (vendor site)](https://www.anthropic.com/claude)
- [ChatGPT (vendor site)](https://chatgpt.com/)
- [Microsoft Excel (vendor site)](https://www.microsoft.com/microsoft-365/excel)
- [Microsoft Copilot (vendor site)](https://www.microsoft.com/microsoft-365/copilot)
- [Google Sheets (vendor site)](https://workspace.google.com/products/sheets/)

## Put it to work

Start with a small sample and keep the original record open while you verify the result.

## Know what does the work.

Agent executes
:   An AI agent calls connected tools to carry out bounded actions. You set permissions and review the result.

AI assists
:   AI drafts or analyzes. A person operates the tools, checks the work, and takes action.

Conventional automation
:   Rules or specialist software perform the task. No AI agent is required.
