Every procurement team reports savings. Far fewer can show them in the P&L. The gap has a name — savings leakage — and it happens in the dull space between a signed contract and a paid invoice: the new price never reaches the ERP, a site keeps ordering from the old supplier, the supplier keeps billing last year's rate. Nobody notices because nobody has time to compare thousands of invoice lines against hundreds of contracts.
That comparison is exactly the kind of work AI and automation are now good at. This is how I would build an AI savings tracker inside Microsoft 365, what each part does, the prompt that does the hard part, and where it breaks.
The idea in one picture
The design rule is simple: AI does the reading and the explaining, ordinary flows do the moving and the counting. Arithmetic stays in Excel or Power Automate, where it is exact and auditable. A language model that adds up savings is a model that will eventually add them up wrong.
Step 1: let AI read the contracts
The price register is the foundation, and in most mid-size companies it does not exist in a usable form. Prices live in PDFs, email confirmations and price lists attached to framework agreements. Typing them into a register is the job that never gets done.
A Power Automate flow triggered when a contract lands in a SharePoint library sends the document text to a language model — AI Builder's prompt action or an Azure OpenAI connection, whichever your tenant allows — and writes the answer as rows into a SharePoint list. The prompt is the part that matters:
You extract commercial terms from a supplier contract or price list.
Return JSON only, no commentary:
{"supplier": "", "contract_ref": "", "currency": "",
"valid_from": "YYYY-MM-DD", "valid_to": "YYYY-MM-DD",
"lines": [{"item": "", "supplier_part_no": "", "unit": "",
"unit_price": 0, "min_qty": null}],
"price_adjustment": {"type": "fixed | index | annual_review | none",
"index_name": "", "cap_percent": null},
"evidence": [{"field": "", "quote": "", "page": 0}]}
Rules: copy numbers exactly as written; use null when a value is not
stated; never calculate or convert; put the sentence you used for every
price and date into "evidence".Two details make this reliable enough to use. The evidence field forces the model to quote where each price came from, so a buyer can check a line in seconds instead of rereading the contract. And the instruction never to calculate keeps the model doing what it is good at — reading — and away from what it is bad at. This is the same pattern as Contract Nemesis, pointed at prices instead of renewal dates.
Step 2: match invoices and explain the gap
Once a day, a second flow takes yesterday's invoice lines from the ERP export and looks up the contracted price for each supplier and item. Most lines match exactly and are ignored. The mismatches are where AI earns its place a second time, because a raw "price differs" alert is useless: buyers need to know why.
For each mismatch the model gets the invoice line, the register line and the contract evidence, and classifies the cause: the old price is still being billed, the item was bought from a non-contracted supplier, the unit of measure differs (a box of 100 against a price per piece), an index adjustment explains the difference, or something it cannot explain. That last bucket goes to a human. The rest arrive in Teams as a short message to the responsible buyer with the evidence attached.
Step 3: the monthly savings report writes itself
The register now holds negotiated prices, and the matching flow knows what was actually paid. That gives you the three numbers Finance cares about without anyone building a spreadsheet: negotiated savings (agreed price difference times forecast volume), realized savings (the same difference times invoiced volume) and leakage (the money lost between the two). Power BI or a plain Excel pivot does the counting.
Copilot, or the same language model step, then drafts the commentary: which categories delivered, where leakage came from, which suppliers keep billing old prices. You edit it; you do not write it from scratch. Keep cost avoidance — increases you prevented — in its own column. It is real value, but spend did not go down, and mixing the two is the fastest way to lose a CFO.
What you need, and what it costs
| Component | Usually already there? | Watch out for |
|---|---|---|
| SharePoint library and list | Yes, in any Microsoft 365 tenant | Name columns before the first flow runs |
| Power Automate standard flows | Yes, in most business plans | Scheduled ERP export needs a file drop or connector |
| Language model step | Sometimes — AI Builder credits or Azure OpenAI | Check with IT which one is approved before building |
| ERP invoice export | Yes, but often manual | Supplier and item codes must be consistent |
| Power BI | Often | Optional — an Excel pivot is enough to start |
For a single category, this is days of work, not a project. The savings calculator will put a number on the hours, and the ROI article shows how to put the build into a business case.
Where it breaks
Scanned contracts with poor print quality break step one; run them through OCR first and expect lower confidence. Unit-of-measure chaos breaks step two more often than wrong prices do, so add a conversion column early. Index-linked prices need the index value for the invoice month, which the model cannot know — store it in its own list and let the flow look it up. And the system only finds leakage on contracts that are in the register, so the first month is mostly about getting the register complete.
Savings tracking stops being a reporting chore when it starts catching money. That is the moment people stop asking whether it is worth maintaining.
FAQ
Can AI track procurement savings automatically?
AI can read contracts into a price register and explain invoice mismatches; ordinary automation does the matching and counting. Together they track negotiated vs realized savings and flag leakage without manual spreadsheets.
What is savings leakage in procurement?
The difference between negotiated and realized savings: money agreed with suppliers that never shows up in paid invoices, usually because of old prices in the ERP, off-contract buying or invoices at the previous rate.
Do I need special software for AI savings tracking?
Not to start. A Microsoft 365 tenant with SharePoint, Power Automate and an approved language model step covers one category. Dedicated savings tracking software becomes worth it with many buyers, approval workflows and audit requirements.
Should a language model calculate the savings?
No. Let it read documents and explain differences; do the arithmetic in Excel, Power Automate or Power BI where it is exact and auditable.